Androidplot:设置填充/边距以(完美)容纳轴标签

时间:2015-03-08 09:44:25

标签: androidplot

在androidplot XYPlot中,如果您有较大的值(多位数)和/或较大的字体大小,Y轴上的刻度标签会被剪裁。这些(以及X轴上的类似问题)之前已经在这些问题中进​​行了讨论:

答案总是添加更多填充和/或边距,以便为标签留出足够的空间。

我的问题是:如何将填充/边距设置为恰当数量的空间?

简单地将左边距硬编码为某个值是次优解决方案。假设我想绘制一些数据,如果Y值在[0,9]范围内或在[10000,20000]范围内,我事先并不知道。如何设置填充/边距以避免剪切和不必要的空白空间?

3 个答案:

答案 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);