android - MPAndroidChart - getFormattedValue 方法中的错误值。他们来自哪里?
问题描述
我正在处理一个使用 MPAndroidChart 库的项目,这让我非常抓狂,我想删除它。
问题是我创建了一个自定义 ValueFormatter,但我无法理解这些值来自哪里,都是错误的。
private void setData() {
for (int i = 1; i <= 10; i++) {
Entry entry = new Entry(i, i);
values.add(entry);
}
IAxisValueFormatter valueFormatter = new myValueFormatter();
XAxis xAxis = mChart.getXAxis();
xAxis.setValueFormatter(valueFormatter);
LineDataSet set1 = new LineDataSet(values, "DataSet 1");
ArrayList<ILineDataSet> dataSets = new ArrayList<ILineDataSet>();
dataSets.add(set1); // add the datasets
// create a data object with the datasets
LineData data = new LineData(dataSets);
// set data
mChart.setData(data);
}
自定义格式化程序类: 我有一个包含 1、2、3、4、5、6、7、8、9、10 值的数组,但我在 getFormattedValue 方法中得到了 2、4、6、8、10 个值。
public classmyValueFormatter implements IAxisValueFormatter {
@Override
public String getFormattedValue(float value, AxisBase axis) {
System.out.println(value); //Here I get odd values where they come from I don't know.
}
}
解决方案
好吧,通常这就是库的编写方式。看看这里:
String label = mXAxis.getValueFormatter().getFormattedValue(mXAxis.mEntries[i / 2], mXAxis);
作者的意图可能是在标签之间留出更多间距。如果您认为这是一个错误,请将问题提交到 Github 上的库存储库。
推荐阅读
- python - 用序列python设置数组元素——机器学习(逻辑回归)
- javascript - bootstrap 4复选框单击不适用于javascript实现
- android - 如何通过 id 获取 firebase 数据库类别数据并在单独的 recyclerview 中显示该数据?
- json - 在 golang 中使用数组解析 JSON
- ios - Swift - 特定长度的子数组
- android - Android中矢量路径上的弹簧动画
- kubernetes - 尽管 externalTrafficPolicy 设置为 Local,但 Kubernetes 提供了一个内部源 IP
- python - 在 Jupyter Notebook Markdown Cell Python 中打印变量
- javascript - 标签未在 ChartJS 中显示
- javascript - 如何将 HTML 动态表保存到数据库中