用mpandroid绘制一个折线图
有人能用mpandroid绘制这些数据吗用mpandroid绘制一个折线图,android,mpandroidchart,Android,Mpandroidchart,有人能用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, 126
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设备中只画出了数组的前五个元素![我的意思是从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);
for(int i=0;i您在for
循环中只添加了5个Entry
对象。显然,您的图表将只显示5个条目
编辑:
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();
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);
}
}
谢谢您的重播,但在您的图形中,您的x轴是1,2,3,…。但是如果您看到我的数据,例如y2[2]=3375.21,其相关x是x2[2]=1606.64(不是x=2)或y2[5]=3313.15,其相关x是x2[5]=1534.98(不是x=5)
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);
}
}