gpt4 book ai didi

android - 如何将条形图移动到 MPAndroidChart 图表的中心?

转载 作者:行者123 更新时间:2023-11-29 19:04:45 29 4
gpt4 key购买 nike

我正在使用 MPAndroidChart。

这是一个不错的库,但我无法解决问题。

这是执行的结果。

enter image description here

轴很好地居中对齐,但条形组没有居中对齐。

我也想将栏组移到中心。

而且,这是完整的代码。

        float barWidth = 0.1f;
float barSpace = 0f;
float groupSpace = 0.1f;
int groupCount = 3;

distinctionGraph = (BarChart) findViewById(R.id.distinction_graph);
verificationGraph = (BarChart) findViewById(R.id.verification_graph);
sentenceGraph = (BarChart) findViewById(R.id.sentence_graph);

ArrayList xVals = new ArrayList();

xVals.add("3월");
xVals.add("2월");
xVals.add("1월");

ArrayList yVals1 = new ArrayList();
ArrayList yVals2 = new ArrayList();
ArrayList yVals3 = new ArrayList();

yVals1.add(new BarEntry(1, (float) 1));
yVals2.add(new BarEntry(1, (float) 2));
yVals3.add(new BarEntry(1, (float) 2));

yVals1.add(new BarEntry(2, (float) 3));
yVals2.add(new BarEntry(2, (float) 4));
yVals3.add(new BarEntry(2, (float) 4));

yVals1.add(new BarEntry(3, (float) 5));
yVals2.add(new BarEntry(3, (float) 6));
yVals3.add(new BarEntry(3, (float) 6));

BarDataSet set1, set2, set3;
set1 = new BarDataSet(yVals1, "쉬움");
set1.setColor(Color.parseColor("#3EBB9B"));
set2 = new BarDataSet(yVals2, "보통");
set2.setColor(Color.parseColor("#3698DB"));
set3 = new BarDataSet(yVals3, "어려움");
set3.setColor(Color.parseColor("#2C80B9"));

BarData data = new BarData(set1, set2, set3);
data.setValueFormatter(new LargeValueFormatter());

distinctionGraph.setData(data);
distinctionGraph.getBarData().setBarWidth(barWidth);
distinctionGraph.getXAxis().setAxisMinimum(0);
distinctionGraph.getXAxis().setAxisMaximum(0 + distinctionGraph.getBarData().getGroupWidth(groupSpace, barSpace) * groupCount);
distinctionGraph.groupBars(0, groupSpace, barSpace);
distinctionGraph.getData().setHighlightEnabled(false);
distinctionGraph.invalidate();

distinctionGraph.setDescription(null);
distinctionGraph.setPinchZoom(false);
distinctionGraph.setScaleEnabled(false);
distinctionGraph.setDrawBarShadow(false);
distinctionGraph.setDrawGridBackground(false);

Legend l = distinctionGraph.getLegend();
l.setVerticalAlignment(Legend.LegendVerticalAlignment.TOP);
l.setHorizontalAlignment(Legend.LegendHorizontalAlignment.CENTER);
l.setOrientation(Legend.LegendOrientation.HORIZONTAL);
l.setDrawInside(true);
l.setYOffset(20f);
l.setXOffset(0f);
l.setYEntrySpace(0f);
l.setTextSize(8f);

//X-axis
XAxis xAxis = distinctionGraph.getXAxis();
xAxis.setGranularity(1f);
xAxis.setGranularityEnabled(true);
xAxis.setCenterAxisLabels(true);
xAxis.setDrawGridLines(false);
xAxis.setAxisMaximum(3);
xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
xAxis.setValueFormatter(new IndexAxisValueFormatter(xVals));
//Y-axis
distinctionGraph.getAxisRight().setEnabled(false);
YAxis leftAxis = distinctionGraph.getAxisLeft();
leftAxis.setValueFormatter(new LargeValueFormatter());
leftAxis.setDrawGridLines(true);
leftAxis.setSpaceTop(35f);
leftAxis.setAxisMinimum(0f);

我将 groupCount 设置为 3,但不起作用。我错过了什么吗?

比如像这样

enter image description here

需要帮助。谢谢:)

最佳答案

我自己解决的。

首先,我像下面这样更改了变量。

    float barWidth = 0.3f;
float barSpace = 0.0f;
float groupSpace = 0.06f;
int groupCount = 3;

重点是 barWidth。我将它从 0.0f 更改为 0.3f。

0.3 * 3 = 0.9.

它接近于 1。

并且,我修改了 groupBars,如下所示。

distinctionGraph.groupBars(groupSpace, groupSpace, barSpace);

groupBar 的第一个参数是 fromX。修改前groupSpace为0。

这是我解决后的截图

enter image description here

关于android - 如何将条形图移动到 MPAndroidChart 图表的中心?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47708252/

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