AndroidPlot 对数轴?

AndroidPlot Logarithmic Axis?

我目前正在使用 AndroidPlot 显示动态 XY 图。通常显示此数据的 Python 脚本还包括使用 Matplotlib 以对数刻度绘制数据的能力。是否有可能使用 AndroidPlot 获得对数 Y 轴,或者甚至任何类型的带有不等间距值的刻度的 y 轴?

感谢您的帮助。

您绝对可以使用 Androidplot 做到这一点,但它并不像设置配置参数那么简单。

最简单的方法可能是扩展 XYSeries 的实现并将 getY(int) 方法调整为 return 日志值而不是原始值。例如,仅在 y 轴上实现 log10:

class LogXYSeries extends SimpleXYSeries {

        public LogXYSeries(String title) {
            super(title);
        }

        @Override
        public Number getY(int index) {
            final Number rawY = super.getY(index);
            if(rawY != null) {
                Math.log10(rawY.doubleValue());
            }
            return null;
        }
}

就刻度而言,您可以将它们配置为以固定值增量或可见值范围的均匀细分显示(默认为适合 min/max 在您的系列数据中,但您如果您愿意,可以手动设置它。)。我想细分将是您使用对数刻度寻找的东西。

如果我误解了您要完成的任务,而您只想将对数刻度应用于刻度标签,您也可以这样做。 XYPlots 的域和范围标签文档中有 example of setting a custom formatter