XAxis 标签在 MPAndroidChart 中绘制不正确
XAxis labels not drawn properly in MPAndroidChart
我用库MPAndroidChart画了条形图。
我遇到以下问题:
当我的图表中有超过 4 或 5 个柱时,x 标签未正确绘制。
我该如何解决这个问题?
我建议您增加轴标签之间的 space:
xAxis.setSpaceBetweenLabels(...);
或者您通常减少标签的长度,例如只有前两个字母或类似的东西。
增加标签之间的 space 可以使标签偏离条形中心位置,但是您可以尝试间距。
如果间距没有给您预期的结果,请使用此函数省略标签。
public static String ellipsize(String input, int maxCharacters) {
if (input == null || input.length() < maxCharacters) {
return input;
}
return input.substring(0, maxCharacters - 3) + "...";
}
并实现 IAxisValueFormatter 以获取格式化文本
xAxis.setValueFormatter(new IAxisValueFormatter() {
@Override
public String getFormattedValue(float v, AxisBase axisBase) {
if((int)v != -1 && (int)v < xAxisValues.size())
return ellipsize(xAxisValues.get((int)v),10);
else
return "";
}
});
我用库MPAndroidChart画了条形图。
我遇到以下问题: 当我的图表中有超过 4 或 5 个柱时,x 标签未正确绘制。
我该如何解决这个问题?
我建议您增加轴标签之间的 space:
xAxis.setSpaceBetweenLabels(...);
或者您通常减少标签的长度,例如只有前两个字母或类似的东西。
增加标签之间的 space 可以使标签偏离条形中心位置,但是您可以尝试间距。
如果间距没有给您预期的结果,请使用此函数省略标签。
public static String ellipsize(String input, int maxCharacters) {
if (input == null || input.length() < maxCharacters) {
return input;
}
return input.substring(0, maxCharacters - 3) + "...";
}
并实现 IAxisValueFormatter 以获取格式化文本
xAxis.setValueFormatter(new IAxisValueFormatter() {
@Override
public String getFormattedValue(float v, AxisBase axisBase) {
if((int)v != -1 && (int)v < xAxisValues.size())
return ellipsize(xAxisValues.get((int)v),10);
else
return "";
}
});