我正在使用MPAndroid图表使用几个点绘制立方图。目前,该库连接这些点并绘制平滑图形。我使用的代码是:
ArrayList<String> xVals = new ArrayList<String>();
for (int i = 0; i < count; i++) {
xVals.add((1990 +i) + "");
}
ArrayList<Entry> vals1 = new ArrayList<Entry>();
for (int i = 0; i < count; i++) {
float mult = (range + 1);
float val = (float) (Math.random() * mult) + 20;// + (float)
// ((mult *
// 0.1) / 10);
vals1.add(new Entry(val, i));
}
// create a dataset and give it a type
LineDataSet set1 = new LineDataSet(vals1, "DataSet 1");
set1.setDrawCubic(true);
LineData data = new LineData(xVals, set1);
我想获得库在我给出的中间点之间绘制的所有中间点的列表,以便在数组中获得平滑曲线。有什么办法可以做到这一点吗?
谢谢
在类 LineChartRenderer.java 中,drawCubic() 被调用。在底部的函数中,当它渲染路径时,您可以找到用于绘制平滑曲线的所有点。看看它是否对你有帮助。
对于曲线(平滑边线)数据集模式为CUBIC_BEZIER。
LineDataSet lds=new LineDataSet(water_entryline,"Levels");
lds.setMode(LineDataSet.Mode.CUBIC_BEZIER);
LineData ld=new LineData();
ld.addDataSet(lds);
linechart.setData(ld);
linechart.animateY(1000, Easing.EasingOption.Linear);
linechart.invalidate();
用于从折线图中获取值
linechart.setOnChartValueSelectedListener(new OnChartValueSelectedListener() {
@Override
public void onValueSelected(Entry e, Highlight h) {
Log.d("value","X: "+e.getX()+" Y: "+e.getY());
}
@Override
public void onNothingSelected() {
}
});