2016-07-15 16 views
1

誰でもmpandroidを使ってこれらのデータを描画できますか?mpandroidで折れ線グラフを描く

double[] y2={4151.07, 3375.21, 3354.56, 3333.87, 3313.15, 3146.99, 123.67, 84.89, 43.9, 0.34, 0.0}; 
     double[] x2={ 0.0, 1606.64, 1643.04, 1679.05, 1534.98, 1458.7, 1377.66, 1291.13, 1260.91, 1200.2, 547.3}; 

私は、コードを書いて、私のAndroidデバイスで配列のちょうど最初の5つの要素が描かれています! [私はy2 [0]からy2 [5]へ、そしてx2 [0]からx2 [5]へ) 誰も私に言うことができますか? これは私のコードです:

for(int i=0;i<5;i++){ 
      float y=(float)y2[i] ; 
      float x=(float)x2[i] ; 
      yVals.add(new Entry(x, y)); 
     } 
     LineDataSet sety=new LineDataSet(yVals,"yData"); 
     LineData data = new LineData(sety); 
     lineChart.setData(data); 

      XAxis xAxis = lineChart.getXAxis(); 
      lineChart.getAxisRight().setAxisMaxValue(4500); 
      lineChart.getAxisLeft().setAxisMaxValue(4500); 
      lineChart.getAxisRight().setAxisMinValue(-20); 
      lineChart.getAxisLeft().setAxisMinValue(-20); 

      xAxis.setAxisMaxValue(3500); 
      xAxis.setAxisMinValue(-20); 
      lineChart.animateX(3000); 
      lineChart.setDragEnabled(true); 
      lineChart.setScaleEnabled(true); 

あなたは、私が他のデータを参照するためにそれを拡大しなければならないと思いますか?

答えて

0

forループには、5個のEntry個のオブジェクトしか追加されません。チャートには5つのエントリしか表示されません。

EDIT:

double[] y2 = {4151.07, 3375.21, 3354.56, 3333.87, 3313.15, 3146.99, 123.67, 84.89, 43.9, 0.34, 0.0}; 
    double[] x2 = {0.0, 1606.64, 1643.04, 1679.05, 1534.98, 1458.7, 1377.66, 1291.13, 1260.91, 1200.2, 547.3}; 

    ArrayList<Entry> yVals1 = new ArrayList<>(); 
    for (int i = 0; i < y2.length; i++) { 
     yVals1.add(new Entry(i, (float) y2[i])); 
    } 

    LineDataSet sety = new LineDataSet(yVals1, "Dataset 1"); 
    sety.setValueFormatter(new LineChartYValueFormatter()); 
    sety.setColor(ColorTemplate.MATERIAL_COLORS[2]); 
    ArrayList<ILineDataSet> dataSets = new ArrayList<>(); 
    dataSets.add(sety); 

    LineData data = new LineData(dataSets); 
    lineChart.setData(data); 

    XAxis xAxis = lineChart.getXAxis(); 
    xAxis.setAxisMinValue(0); 
    xAxis.setPosition(XAxis.XAxisPosition.BOTTOM); 
    xAxis.setValueFormatter(new LineChartXAxisValueFormatter(x2)); 
    xAxis.setLabelCount(10); 
    xAxis.setLabelRotationAngle(45); 

    lineChart.animateX(3000); 
    lineChart.setDragEnabled(true); 
    lineChart.setScaleEnabled(true); 

    lineChart.highlightValue(null); 
    lineChart.invalidate(); 

LineChartXAxisValueFormatterクラス

public class LineChartXAxisValueFormatter implements AxisValueFormatter { 

    double[] mXLabels; 

    public LineChartXAxisValueFormatter(double[] xLabels) { 
     mXLabels = xLabels; 
    } 

    @Override 
    public String getFormattedValue(float value, AxisBase axis) { 

     int i=(int)value; 
     return new DecimalFormat("#0.00").format(mXLabels[i]); 
    } 

    @Override 
    public int getDecimalDigits() { 
     return 0; 
    } 
} 

LineChartYValueFormatterクラス

public class LineChartYValueFormatter implements ValueFormatter { 
    public LineChartYValueFormatter() { 
    } 

    @Override 
    public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) { 
     return new DecimalFormat("#0.00").format(value); 
    } 
} 

See the result

+0

リプレイに感謝しますが、グラフのx軸は1,2,3、....ですが、例えばy2 [2] = 3375.21などのデータが表示され、その関連xがx2 [2] = 1606.64(not x = 2)またはy2 [5] = 3313.15であり、関連するxはx2 [5] = 1534.98(x = 5でない) –

+0

私の編集した答えを見てください – Madhu

関連する問題