MPAndroid 图表中的自定义 x 轴标签
Custom x-axis labelling in MPAndroid Chart
我希望x轴标注如上图所示。我尝试过使用 AxisValueFormatter 接口,但它所做的是从 0 到 1 重复标签 'jh ow' 3 次,同时遗漏了此处显示的一些标签。
这是我得到的输出。虽然图表的形状是正确的,但标签却不正确。
我正在分享图表数据,以便有兴趣的人可以尝试制作如图所示的图表。任何帮助都会很棒,谢谢。
使用 MPAndroid 并不重要。来自任何其他图书馆的任何帮助也很好。
数据为:
"lables" : ["jh ow", "n ih l", "b iy", "hh iy r", "s uw n"]
"values":[[{"x":"0.00","y":"0.00"},{"x":"0.99","y":"0.00"}],
[{"x":"0.99","y":"1.00"},{"x":"1.19","y":"0.50"}]
, [{"x":"1.19","y":"0.50"},{"x":"1.37","y":"0.50"}]
, [{"x":"1.37","y":"0.50"},{"x":"1.59","y":"0.50"}]
, [{"x":"1.59","y":"0.50"},{"x":"2.12","y":"1.00"}]]
您只需在 activity 页中制作一个像这样的简单字符串列表;
final ArrayList<String> xVals= new ArrayList<>();
xVals.add("jh ow");
xVals.add("n ih l");
xVals.add("b iy");
xVals.add("hh iy r");
xVals.add("s uw n");
然后你这样做;
xAxis.setValueFormatter(new MyXAxisDateArrayFormatter(xVals));
你的MyXAxisDateArrayFormatter.java
public class MyXAxisDateArrayFormatter implements IAxisValueFormatter {
private String[] mValues;
public MyXAxisDateArrayFormatter(String[] values) {
this.mValues = values;
}
@Override
public String getFormattedValue(float value, AxisBase axis) {
// "value" represents the position of the label on the axis (x or y)
return mValues[(int) value];
}
}
它对我有效
没关系,我可以通过使用旧版本的 MPAndroidChart 库来实现这一点,而且效果很好。
我希望x轴标注如上图所示。我尝试过使用 AxisValueFormatter 接口,但它所做的是从 0 到 1 重复标签 'jh ow' 3 次,同时遗漏了此处显示的一些标签。
这是我得到的输出。虽然图表的形状是正确的,但标签却不正确。
我正在分享图表数据,以便有兴趣的人可以尝试制作如图所示的图表。任何帮助都会很棒,谢谢。
使用 MPAndroid 并不重要。来自任何其他图书馆的任何帮助也很好。
数据为:
"lables" : ["jh ow", "n ih l", "b iy", "hh iy r", "s uw n"]
"values":[[{"x":"0.00","y":"0.00"},{"x":"0.99","y":"0.00"}],
[{"x":"0.99","y":"1.00"},{"x":"1.19","y":"0.50"}]
, [{"x":"1.19","y":"0.50"},{"x":"1.37","y":"0.50"}]
, [{"x":"1.37","y":"0.50"},{"x":"1.59","y":"0.50"}]
, [{"x":"1.59","y":"0.50"},{"x":"2.12","y":"1.00"}]]
您只需在 activity 页中制作一个像这样的简单字符串列表;
final ArrayList<String> xVals= new ArrayList<>();
xVals.add("jh ow");
xVals.add("n ih l");
xVals.add("b iy");
xVals.add("hh iy r");
xVals.add("s uw n");
然后你这样做;
xAxis.setValueFormatter(new MyXAxisDateArrayFormatter(xVals));
你的MyXAxisDateArrayFormatter.java
public class MyXAxisDateArrayFormatter implements IAxisValueFormatter {
private String[] mValues;
public MyXAxisDateArrayFormatter(String[] values) {
this.mValues = values;
}
@Override
public String getFormattedValue(float value, AxisBase axis) {
// "value" represents the position of the label on the axis (x or y)
return mValues[(int) value];
}
}
它对我有效
没关系,我可以通过使用旧版本的 MPAndroidChart 库来实现这一点,而且效果很好。