MPAndroidChart是一个Android图表类框架,十分强大,GitHub地址:https://github.com/PhilJay/MPAndroidChart。
最近在使用LineChart折线图的时候,发现当折线图数据只有一个时,不会画出折线,还不显示圆圈点。所以最后搞了好久终于解决了:就是当折线图数据只有一个时,显示一个点。 具体代码如下:
/**
* initLineDataSet
* @param entryList 折线数据
*/
private void initLineDataSet(List<Entry> entryList){
//每一个LineDataSet就是一根线
LineDataSet lineDataSet = new LineDataSet(entryList, "折线1");
//设置为折线
lineDataSet.setMode(LineDataSet.Mode.LINEAR);
lineDataSet.setAxisDependency(YAxis.AxisDependency.LEFT);
//设置包括的范围区域填充颜色
lineDataSet.setDrawFilled(false);
//设置线的宽度
lineDataSet.setLineWidth(1.5f);
//设置曲线的颜色
lineDataSet.setColor(Color.parseColor("FF4081"));
//设置曲率,0.05f-1f 1为折线
lineDataSet.setCubicIntensity(1f);
//如果折线数据只有一个,显示圆点
if (entryList.size() == 1){
//设置有圆点
lineDataSet.setDrawCircles(true);
lineDataSet.setCircleColor(Color.parseColor("FF4081"));
lineDataSet.setDrawHorizontalHighlightIndicator(true);
}else {
//设置没有圆点
lineDataSet.setDrawCircles(false);
lineDataSet.setDrawHorizontalHighlightIndicator(false);
}
lineDataSet.setHighLightColor(Color.GRAY);//高亮交叉指示线颜色
lineDataSet.enableDashedHighlightLine(10f, 10f, 0f);
//设置不显示数值
lineDataSet.setDrawValues(true);
LineData data = new LineData(lineDataSet);
//设置显示值的颜色
data.setValueTextColor(Color.GRAY);
data.setValueTextSize(9f);
mLineChart.animateX(1000);
// set data
mLineChart.setData(data);
mLineChart.invalidate();
}
其中,最关键的代码就是
//设置有圆点
lineDataSet.setDrawCircles(true);
lineDataSet.setCircleColor(Color.parseColor("FF4081"));
lineDataSet.setDrawHorizontalHighlightIndicator(true);
无图说个**。