【发布时间】:2016-05-27 06:44:07
【问题描述】:
【问题讨论】:
-
不清楚您所说的“描绘”是什么意思。是否有代表每个州的实际图像?在不了解更多信息的情况下,这听起来像是使用步骤图样式的完美用例。
-
嗨@Nick,状态是从 csv 文件中读取的,如编辑中所示。
标签: string androidplot
【问题讨论】:
标签: string androidplot
我仍然不能 100% 确定我是否理解所需的可视化,但以下是我建议的基本步骤:
首先,您需要将 CSV 数据转换为 XYSeries 数据。为此,您需要将当前的 X/Y 字符串值映射到数字。我建议创建一个看起来像这样的方法:
// parses a CSV string into an XYSeries
// for example, DISCHARGE = 1, MPPT = 2
public XYSeries convertCSVToXYSeries(String csvContent) {...}
接下来,按照Androidplot Quickstart Tutorial 中所示的设置任何其他 XYPlot 的方式几乎相同的方式设置您的绘图等。
当您将从 convertCSVToXYSeries 返回的 XYSeries 添加到绘图时,请使用 XYStepFormatter:
StepFormatter stepFormatter = new StepFormatter(Color.BLUE, Color.BLUE);
stepFormatter.setVertexPaint(null); // don't draw individual points
plot.addSeries(series, stepFormatter);
最后,添加一个自定义范围值格式化程序来打印您的状态字符串,而不是它们被映射到的 int 值:
// create a custom getFormatter to draw our state names as range tick labels:
plot.setRangeValueFormat(new Format() {
@Override
public StringBuffer format(Object obj, StringBuffer toAppendTo, FieldPosition pos) {
Number num = (Number) obj;
switch(num.intValue()) {
case 1:
toAppendTo.append("DISCHARGE");
break;
case 2:
toAppendTo.append("MPPT");
break;
default:
toAppendTo.append("Unknown");
break;
}
return toAppendTo;
}
@Override
public Object parseObject(String source, ParsePosition pos) {
return null;
}
});
【讨论】: