Android 字符串参数绘图

Android Plot for String Parameters

我的应用程序要求 Y 轴具有 'Charging'、'Discharging' 和 'Charging Failed' 等字符串。是否可以用这个绘制图表并根据 Android Plot?

上的这些字符串描述相关参数

我仍然不是 100% 确定我理解所需的可视化,但这里是我建议的基本步骤:

首先,您需要将 CSV 数据转换为 XYSeries 数据。为此,您需要将当前的 X/Y 字符串值映射到数字。我建议创建一个看起来像这样的方法:

// parses a CSV string into an XYSeries
// for example, DISCHARGE = 1, MPPT = 2
public XYSeries convertCSVToXYSeries(String csvContent) {...}

接下来,设置您的 Plot 等。与 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;
            }
        });