自定义MPAndroidChart中的图例

3

我正在参与一个需要实现图表的项目,我决定使用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 );
    }

enter image description here

1个回答

2
如果您创建一个自定义 Chart 类并覆盖 init() 方法,那么您就可以这样做。在这个方法中,图表会初始化一个 LegendRenderer,这是您需要介入并进行更改的地方。
创建一个自定义 LegendRenderer 并确保所有测量值都适合那些可绘制的内容。drawForm() 方法将允许您绘制图像而不是默认形状(圆形、正方形、线条)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接