android - 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 存储库中找到解决方案,但找不到合适的解决方案,如果您能帮助我们,那就太好了。
解决方案
将以下行添加到您的代码中:
barChart.getXAxis().setGranularityEnabled(true);
barChart.getXAxis().setGranularity(1.0f);
lineChart.getXAxis().setLabelCount(3); // give any number here for visible labels
您可以在缩放时获取其他条目的标签
推荐阅读
- java - 时区有冒号时如何解决解析异常?
- python - PySpark 中的语法 df.rdd.map(lambda row: row[0:]) 有什么作用?
- c# - 为什么在 try 块中返回变量不会更改在 finally 部分中重置该变量时返回的值?
- css - Jupyter 笔记本主题
- python-3.x - 所有互联网通话的python代理环境
- javascript - 如何仅为非隐藏媒体查询类触发 JS 事件?
- javascript - 反应Js | 根据登录输入从 API 取回用户 ID
- node.js - 使用 nexe 将 Node js 应用程序转换为 exe 失败?
- idl - 在介子中提供头文件依赖
- vba - MS-Access 2010 - 将外部应用程序置于最前面