gpt4 book ai didi

android - MPAndroidChart条形图如何改变每个标签的颜色

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:01:56 26 4
gpt4 key购买 nike

MPAndroidChart这是我使用 MPAndroidChart 库构建的条形图。现在我必须改变每个标签的颜色,我无法通过互联网搜索找到解决方案。

最佳答案

这个答案有两个部分。

1) 如果您想在条形图的图例中使用单一标签,您可以将所有条形添加到一个数据集中并使用方法 setColors(int[] colors, android.content.Context c) 进行分配每个栏的颜色。

2) 如果您想在每个条形图的图例中使用不同的标签,则需要在图表中包含多个数据集并为每个数据集分配一种颜色(标签数 = 数据集数)。

我在下面包含了示例代码供您引用。初始代码块代表第一个选项,您可以在标题为“替换”的注释之间替换第二个代码块以获得第二个选项。

public class SO extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.androidchart_mp);
BarChart chart = (BarChart) findViewById(R.id.chart_bar_mp);

// replace
ArrayList<BarEntry> entries = new ArrayList<>();
entries.add(new BarEntry (1, 5));
entries.add(new BarEntry (3, 7));
entries.add(new BarEntry (5,3));
entries.add(new BarEntry (7,4));
entries.add(new BarEntry (9,1));
BarDataSet dataset = new BarDataSet(entries, "First");
dataset.setColors(new int[] {Color.RED, Color.GREEN, Color.GRAY, Color.BLACK, Color.BLUE});
BarData data = new BarData(dataset);
chart.setData(data);
// replace



// below is simply styling decisions on code that I have)
YAxis left = chart.getAxisLeft();
left.setAxisMaxValue(10);//dataset.getYMax()+2);
left.setAxisMinValue(0);
chart.getAxisRight().setEnabled(false);
XAxis bottomAxis = chart.getXAxis();
bottomAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
bottomAxis.setAxisMinValue(0);

bottomAxis.setLabelCount(10);
bottomAxis.setAxisMaxValue(10);
bottomAxis.setDrawGridLines(false);
chart.setDrawValueAboveBar(false);
chart.setDescription("");
// legend
Legend legend = chart.getLegend();
legend.setYOffset(40);
legend.setPosition(Legend.LegendPosition.BELOW_CHART_CENTER);
legend.setTextSize(200);
}

第二个选项:

    ArrayList<BarEntry> entries = new ArrayList<>();
entries.add(new BarEntry (1, 5));
ArrayList<BarEntry> entries2 = new ArrayList<>();
entries2.add(new BarEntry (3, 2));
ArrayList<BarEntry> entries3 = new ArrayList<>();
entries3.add(new BarEntry (5, 7));
ArrayList<BarEntry> entries4 = new ArrayList<>();
entries4.add(new BarEntry (7, 7));
ArrayList<BarEntry> entries5 = new ArrayList<>();
entries5.add(new BarEntry (9, 1));
List<IBarDataSet> bars = new ArrayList<IBarDataSet>();
BarDataSet dataset = new BarDataSet(entries, "First");
dataset.setColor(Color.RED);
bars.add(dataset);
BarDataSet dataset2 = new BarDataSet(entries2, "Second");
dataset2.setColor(Color.BLUE);
bars.add(dataset2);
BarDataSet dataset3 = new BarDataSet(entries3, "Third");
dataset3.setColor(Color.GREEN);
bars.add(dataset3);
BarDataSet dataset4 = new BarDataSet(entries4, "Fourth");
dataset4.setColor(Color.GRAY);
bars.add(dataset4);
BarDataSet dataset5 = new BarDataSet(entries5, "Fifth");
dataset5.setColor(Color.BLACK);
bars.add(dataset5);
BarData data = new BarData(bars);
chart.setData(data);

希望对您有所帮助,如果您还有其他问题,请告诉我!

关于android - MPAndroidChart条形图如何改变每个标签的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38872181/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com