2015-02-08 5 views
0

Я разместил график графиков диаграммы в своем приложении, но значения оси x округлены, как 0,2,6,8 Я хочу показать это как 1,2,3,4,5,6,7,8.Мне нужно обновить значение оси x 1-8 в библиотеке диаграмм android

LineChart.java

import org.achartengine.ChartFactory; 
import org.achartengine.GraphicalView; 
import org.achartengine.chart.PointStyle; 
import org.achartengine.model.XYMultipleSeriesDataset; 
import org.achartengine.model.XYSeries; 
import org.achartengine.renderer.XYMultipleSeriesRenderer; 
import org.achartengine.renderer.XYSeriesRenderer; 

import android.app.Activity; 
import android.graphics.Color; 
import android.os.Bundle; 
import android.view.ViewGroup.LayoutParams; 
import android.widget.LinearLayout; 

public class LineChart extends Activity { 
    public static final String TYPE = "type"; 
    private XYMultipleSeriesDataset mDataset = getDemoDataset(); 
    private XYMultipleSeriesRenderer mRenderer = getDemoRenderer(); 
    private GraphicalView mChartView; 

    @SuppressWarnings("deprecation") 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_line_chart); 

     setRendererStyling(); 
     if (mChartView == null) { 
      LinearLayout layout = (LinearLayout) findViewById(R.id.chart); 
      mChartView = ChartFactory.getLineChartView(this, mDataset, 
        mRenderer); 
      mRenderer.setSelectableBuffer(100); 
      layout.addView(mChartView, new LayoutParams(
        LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); 
     } else 
      mChartView.repaint(); 
    } 

    private void setRendererStyling() { 
     mRenderer.setApplyBackgroundColor(true); 
     mRenderer.setBackgroundColor(Color.argb(100, 50, 50, 50)); 
     mRenderer.setAxisTitleTextSize(16); 
     mRenderer.setChartTitleTextSize(20); 
     mRenderer.setLabelsTextSize(15); 
     mRenderer.setLegendTextSize(15); 
     mRenderer.setMargins(new int[] { 20, 30, 15, 0 }); 
     mRenderer.setZoomButtonsVisible(true); 
     mRenderer.setPointSize(10); 
    } 

    private XYMultipleSeriesDataset getDemoDataset() { 
     double[] seriesFirstY = {20,-20,67,180,-45,24,99,-34,-8}; 
     double[] seriesSecondY = {10,80,-40,-20,135,24,199,-34,80}; 

     XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); 

     XYSeries firstSeries = new XYSeries("Sample series One"); 
     for (int i = 0; i < 9; i++) 
      firstSeries.add(i, seriesFirstY[i]); 
     dataset.addSeries(firstSeries); 

     XYSeries secondSeries = new XYSeries("Sample series Two"); 
     for (int j = 0; j < 9; j++) 
      secondSeries.add(j, seriesSecondY[j]); 
     dataset.addSeries(secondSeries); 
     return dataset; 
    } 

    private XYMultipleSeriesRenderer getDemoRenderer() { 
     XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer(); 
     renderer.setMargins(new int[] { 20, 30, 15, 0 }); 
     XYSeriesRenderer r = new XYSeriesRenderer(); 
     r.setColor(Color.BLUE); 
     r.setPointStyle(PointStyle.SQUARE); 
     r.setFillBelowLine(true); 
     r.setFillBelowLineColor(Color.WHITE); 
     r.setFillPoints(true); 
     renderer.addSeriesRenderer(r); 
     r = new XYSeriesRenderer(); 
     r.setPointStyle(PointStyle.CIRCLE); 
     r.setColor(Color.GREEN); 
     r.setFillPoints(true); 
     renderer.addSeriesRenderer(r); 
     renderer.setAxesColor(Color.DKGRAY); 
     renderer.setLabelsColor(Color.LTGRAY); 
     return renderer; 
    } 
} 

activity_Line_chart.xml

Макет для отображения графа

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <LinearLayout 
     android:id="@+id/chart" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.81" 
     android:orientation="horizontal" /> 
</LinearLayout> 

Referred from this site

enter image description here

ответ

0

У вас есть возможность установить несколько меток для нужной оси. В вашем случае вам понадобится этот кусок кода

mRendererHR.setXLabels(8); 

 Смежные вопросы

  • Нет связанных вопросов^_^