Mpandroidchart文本未正确显示在折线图的x轴上
我正在做Mpandroidchart文本未正确显示在折线图的x轴上,android,mpandroidchart,x-axis,Android,Mpandroidchart,X Axis,我正在做Mpandroidchart。我已经创建了一个折线图,并尝试在我的xaxis上放置字符串 final ArrayList<String> xAxisLabel = new ArrayList<>(Arrays.asList("March","April","May")); private ArrayList<Entry> lineChartDataSet(){ ArrayList
Mpandroidchart
。我已经创建了一个折线图,并尝试在我的xaxis
上放置字符串
final ArrayList<String> xAxisLabel = new ArrayList<>(Arrays.asList("March","April","May"));
private ArrayList<Entry> lineChartDataSet(){
ArrayList<Entry> dataSet = new ArrayList<Entry>();
dataSet.add(new Entry(1,40));
dataSet.add(new Entry(2,10));
dataSet.add(new Entry(3,15));
return dataSet;
}
lineDataSet = new LineDataSet(lineChartDataSet(),"data set");
XAxis xAxis = lineChart.getXAxis();
xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
xAxis.setDrawGridLines(false);
//String setter in x-Axis
xAxis.setValueFormatter(new com.github.mikephil.charting.formatter.IndexAxisValueFormatter(xAxisLabel));
xAxis.setGranularity(1f);
xAxis.setGranularityEnabled(true);
final ArrayList xAxisLabel=新的ArrayList(Arrays.asList(“三月”、“四月”、“五月”);
专用ArrayList lineChartDataSet(){
ArrayList数据集=新的ArrayList();
添加(新条目(1,40));
添加(新条目(2,10));
添加(新条目(3,15));
返回数据集;
}
lineDataSet=新的lineDataSet(lineChartDataSet(),“数据集”);
XAxis XAxis=lineChart.getXAxis();
设置位置(xAxis.XAxisPosition.BOTTOM);
xAxis.setDrawGridLines(false);
//x轴上的字符串设置器
setValueFormatter(新的com.github.mikephil.charting.formatter.IndexAxisValueFormatter(xAxisLabel));
xAxis.setGranularity(1f);
xAxis.setGranularityEnabled(真);
输出
在上图中,您可以看到月份名称未正确放置。i、 emarch
不显示,仅显示april
和may
预期产出
我怎么做
对于MPAndroidChart v3.1.0版中的索引AxisValueFormatter的帮助,我们将不胜感激。您可以使用自定义值格式化程序并覆盖字符串getAxisLabel(浮点值,AxisBase轴)方法,您可以定义自己的逻辑来替换每个X值对应的字符串。基于您的数据集的示例如下所示:
xAxis.setValueFormatter(new ValueFormatter() {
@Override
public String getAxisLabel(float value, AxisBase axis) {
String label = "";
if(value == 1)
label = "March";
else if(value == 2)
label = "April";
else if(value == 3)
label = "May";
return label;
}
});
结果如下:
xAxis.setValueFormatter(new ValueFormatter() {
@Override
public String getAxisLabel(float value, AxisBase axis) {
String label = "";
if(value == 1)
label = "March";
else if(value == 2)
label = "April";
else if(value == 3)
label = "May";
return label;
}
});