我实际上使用AndroidPlot库在我的android项目中使用一个简单的图表但我不知道如何更改域区域的值。
更具体地说,这一行:
mySimpleXYPlot.setDomainValueFormat(new DecimalFormat("#"));
在网站上说我可以使用其他格式和它的真实,但如果我使用例如:
SimpleDateFormat("dd-MM-yyyy")
在图表中,所有域值中都显示“31-12-1969”。
有人知道如何更改该日期吗?或使用其他格式(如String)?
答案 0 :(得分:4)
迟到的答案,但也许会对其他人有用。
我也很难解决这个问题,特别是因为我是Java初学者。 我实现了自定义格式化程序。似乎有点丑陋的解决方案,但它的工作原理。想法如下:
以下是一些代码段。
首先是将数组索引转换为自定义标签String的类:
public class MyIndexFormat extends Format {
public String[] Labels = null;
@Override
public StringBuffer format(Object obj,
StringBuffer toAppendTo,
FieldPosition pos) {
// try turning value to index because it comes from indexes
// but if is too far from index, ignore it - it is a tick between indexes
float fl = ((Number)obj).floatValue();
int index = Math.round(fl);
if(Labels == null || Labels.length <= index ||
Math.abs(fl - index) > 0.1)
return new StringBuffer("");
return new StringBuffer(Labels[index]);
}
以下是我如何将其附加到剧情中:
MyIndexFormat mif = new MyIndexFormat ();
mif.Labels = // TODO: fill the array with your custom labels
// attach index->string formatter to the plot instance
pricesPlot.getGraphWidget().setDomainValueFormat(mif);
此技巧也适用于动态更新。
注意:Androidplot似乎在绘制水平线方面存在问题,因此如果您的数据具有相同的Y值,您可能会得到奇怪的结果,我已经就此问题寻求帮助。