首页 > 解决方案 > mpandroidchart折线图x轴标签重叠问题发生

问题描述

实际上,我们正在尝试根据我们拥有的数据来渲染折线图,数据以两种方式呈现,每周和每天。折线图由 x 轴组成,它显示日期,但在 x 轴上显示列表的日期彼此重叠。请检查此图像以查看:https ://pasteboard.co/Iya3jWL.jpg 以下是我目前申请折线图的代码,以调整折线图的外观。

final ArrayList<ILineDataSet> linedataSets = new ArrayList<>();

            LineDataSet set1 = new LineDataSet(ptsModel.yVals7, "Male");
            set1.setFillAlpha(110);
            set1.setColor(Color.parseColor("#1C8AF9"));
            set1.setCircleColor(Color.parseColor("#1C8AF9"));
            set1.setFillColor(Color.parseColor("#9C1C8AF9"));
            set1.setLineWidth(2f);
            set1.setCircleRadius(3f);
            set1.setDrawCircleHole(false);
            set1.setValueTextSize(9f);
            set1.setDrawFilled(true);
            set1.setDrawValues(false);
            set1.setMode(LineDataSet.Mode.CUBIC_BEZIER);

            LineDataSet set2 = new LineDataSet(ptsModel.yVals8, "Female");
            set2.setFillAlpha(110);
            set2.setColor(Color.parseColor("#F92F81"));
            set2.setCircleColor(Color.parseColor("#F92F81"));
            set2.setFillColor(Color.parseColor("#B0F92F81"));
            set2.setLineWidth(2f);
            set2.setCircleRadius(3f);
            set2.setDrawCircleHole(false);
            set2.setValueTextSize(9f);
            set2.setDrawFilled(true);
            set2.setDrawValues(false);
            set2.setMode(LineDataSet.Mode.CUBIC_BEZIER);

            linedataSets.add(set1);
            linedataSets.add(set2);

            LineData linedata = new LineData(linedataSets);
            gendertrendschart.setData(linedata);
            gendertrendschart.notifyDataSetChanged();
            gendertrendschart.getAxisLeft().setStartAtZero(true);

            gendertrendschart.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM);
            gendertrendschart.getXAxis().setDrawGridLines(false);
            gendertrendschart.getAxisLeft().setDrawGridLines(true);
            gendertrendschart.getAxisLeft().setEnabled(true);
            gendertrendschart.getAxisRight().setEnabled(false);
            gendertrendschart.getXAxis().setDrawLabels(true);
            /*int valOffset = (int) (set1.getCircleRadius() * 1.75f);
            gendertrendschart.getXAxis().setXOffset(valOffset);*/
            gendertrendschart.getXAxis().setTextColor(Color.GRAY);
            gendertrendschart.getAxisLeft().setTextColor(Color.GRAY);
            gendertrendschart.getXAxis().setLabelCount(ptsModel.xVals.size(), true);
            gendertrendschart.setMaxHighlightDistance(20);
            gendertrendschart.getXAxis().setGranularityEnabled(true);
            gendertrendschart.getAxisLeft().setGranularityEnabled(true);
            gendertrendschart.getAxisLeft().setValueFormatter(new LargeValueFormatter());

            gendertrendschart.setVisibleXRangeMaximum(5);
            gendertrendschart.setHorizontalScrollBarEnabled(true);

            gendertrendschart.getXAxis().setCenterAxisLabels(true);
gendertrendschart.getXAxis().setValueFormatter(new IndexAxisValueFormatter(ptsModel.xVals));

我尝试在他们的 GitHub 存储库中找到解决方案,但找不到合适的解决方案,如果您能帮助我们,那就太好了。

标签: androidmpandroidchartlinechart

解决方案


将以下行添加到您的代码中:

barChart.getXAxis().setGranularityEnabled(true);
barChart.getXAxis().setGranularity(1.0f);
lineChart.getXAxis().setLabelCount(3);  // give any number here for visible labels

您可以在缩放时获取其他条目的标签


推荐阅读