在androidplot XYPlot中,如果您有较大的值(多位数)和/或较大的字体大小,Y轴上的刻度标签会被剪裁。这些(以及X轴上的类似问题)之前已经在这些问题中进行了讨论:
答案总是添加更多填充和/或边距,以便为标签留出足够的空间。
我的问题是:如何将填充/边距设置为恰当数量的空间?
简单地将左边距硬编码为某个值是次优解决方案。假设我想绘制一些数据,如果Y值在[0,9]范围内或在[10000,20000]范围内,我事先并不知道。如何设置填充/边距以避免剪切和不必要的空白空间?
答案 0 :(得分:2)
我能找到的最佳解决方法是:
int digits = (int) Math.floor(Math.log10(absmax)) + 1;
float leftpad = digits * fontsize/2;
myplot.getGraphWidget().setPaddingLeft(leftpad);
其中absmax是数据中最大的绝对值。
答案 1 :(得分:0)
我有类似的东西,我认为可以解决这个问题。我的设置更复杂,因为我将多个图叠加在一起以获得多范围的影响。
left_pad = mTripPlot.getGraphWidget().getRangeLabelWidth() - 1;
mTripPlot.getGraphWidget().setPadding(left_pad, top_pad, right_pad, bottom_pad);
答案 2 :(得分:0)
万一有人需要,这是我如何使用当前版本的AndroidPlot(1.5.7)为范围标签设置动态填充
String largestString = getLargestLabelOnRange();
float rangeLabelPadding = largestString.length() * 9;
plot.getGraph().setPaddingLeft(rangeLabelPadding);