任何人都可以使用mpandroid绘制这些数据吗?
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);
我写了一个代码,在我的Android设备中只绘制了数组的前五个元素! [我的意思是从y2 [0]到y2 [5]和从x2 [0]到x2 [5]) 谁能说我为什么? 这是我的代码:
<customer>
<name/>
<phone-number/>
</customer>
您认为我应该缩放它以查看其他数据吗?
答案 0 :(得分:1)
您只在Entry
循环中添加了5个for
个对象。显然,您的图表只显示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();
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);
}
}