【问题标题】:Android Plot for String Parameters字符串参数的 Android 绘图
【发布时间】:2016-05-27 06:44:07
【问题描述】:

我的应用要求 Y 轴具有“充电”、“放电”和“充电失败”等字符串。是否可以用它绘制图表并根据 Android Plot 上的这些字符串描述相关参数?

【问题讨论】:

  • 不清楚您所说的“描绘”是什么意思。是否有代表每个州的实际图像?在不了解更多信息的情况下,这听起来像是使用步骤图样式的完美用例。
  • 嗨@Nick,状态是从 csv 文件中读取的,如编辑中所示。

标签: string androidplot


【解决方案1】:

我仍然不能 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;
            }
        });

【讨论】:

    猜你喜欢
    • 2018-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-27
    相关资源
    最近更新 更多