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。
我目前正在使用 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。