在 MPAndroidChart 中自定义 Legend
customize Legend in MPAndroidChart
我在项目中工作,需要实现图表,我决定使用 MPAndroidChart 它的工作很好,但我需要做一些事情来完美地满足我
首先我可以将条形图更改为特定图像还是只需要图像,因为我在应用程序设计中将 3D 图像作为条形图。
第二个我可以像下图一样将图例放在图表右侧的两行中,然后更改图例文本颜色
我的java代码
mChart = (BarChart) view.findViewById(R.id.chart);
mChart.setDescription("");
Legend mLegend = mChart.getLegend();
//mLegend.setPosition(Legend.LegendPosition.RIGHT_OF_CHART_CENTER);
FillBarChart(mChart);
}
private void FillBarChart(BarChart barChart) {
ArrayList<BarEntry> entries = new ArrayList<>();
entries.add(new BarEntry(87f, 0));
entries.add(new BarEntry(90f, 1));
ArrayList<String> labels = new ArrayList<>();
labels.add("Omeprazole 20 mg");
labels.add("Esomeprazole 40 mg");
BarDataSet dataSet = new BarDataSet(entries, " ");
dataSet.setBarSpacePercent(40f);
BarData barData = new BarData(labels, dataSet);
dataSet.setColors(new int[]{R.color.omeprazole_color , R.color.esomeprazole_color} , getActivity());
barChart.setData(barData);
barChart.animateY(3000 , Easing.EasingOption.EaseOutBack );
}
如果您创建自定义 Chart
class 并覆盖 init()
,就可以做到这一点。
在此方法中,图表初始化一个 LegendRenderer
,这是您需要进入并进行更改的点。
创建自定义 LegendRenderer
并确保所有可绘制对象的所有测量值都已到位。 drawForm()
方法将允许您绘制图像而不是默认形式(圆形、方形、直线)。
我在项目中工作,需要实现图表,我决定使用 MPAndroidChart 它的工作很好,但我需要做一些事情来完美地满足我
首先我可以将条形图更改为特定图像还是只需要图像,因为我在应用程序设计中将 3D 图像作为条形图。
第二个我可以像下图一样将图例放在图表右侧的两行中,然后更改图例文本颜色
我的java代码
mChart = (BarChart) view.findViewById(R.id.chart);
mChart.setDescription("");
Legend mLegend = mChart.getLegend();
//mLegend.setPosition(Legend.LegendPosition.RIGHT_OF_CHART_CENTER);
FillBarChart(mChart);
}
private void FillBarChart(BarChart barChart) {
ArrayList<BarEntry> entries = new ArrayList<>();
entries.add(new BarEntry(87f, 0));
entries.add(new BarEntry(90f, 1));
ArrayList<String> labels = new ArrayList<>();
labels.add("Omeprazole 20 mg");
labels.add("Esomeprazole 40 mg");
BarDataSet dataSet = new BarDataSet(entries, " ");
dataSet.setBarSpacePercent(40f);
BarData barData = new BarData(labels, dataSet);
dataSet.setColors(new int[]{R.color.omeprazole_color , R.color.esomeprazole_color} , getActivity());
barChart.setData(barData);
barChart.animateY(3000 , Easing.EasingOption.EaseOutBack );
}
如果您创建自定义 Chart
class 并覆盖 init()
,就可以做到这一点。
在此方法中,图表初始化一个 LegendRenderer
,这是您需要进入并进行更改的点。
创建自定义 LegendRenderer
并确保所有可绘制对象的所有测量值都已到位。 drawForm()
方法将允许您绘制图像而不是默认形式(圆形、方形、直线)。