我如何知道在 AChartEngine 图表中使用哪些边距以防止 y 轴标签在设置为填充布局时显示在图表之外?我可以自动调整图表的大小以使 y 轴标签始终可见,即使它们包含超过 2-3 位数字?
/马库斯
我如何知道在 AChartEngine 图表中使用哪些边距以防止 y 轴标签在设置为填充布局时显示在图表之外?我可以自动调整图表的大小以使 y 轴标签始终可见,即使它们包含超过 2-3 位数字?
/马库斯
您不能自动执行此操作,但您可以调整这些值,直到它看起来不错。当您有多个数字值时,您还可以旋转标签。
这就是我用来处理可以具有不同位数的 Y 轴标签的方法。找到你的最大 Y 值,将其四舍五入为 int,转换为字符串,然后计算字符串的长度。字符串的长度可用于计算左边距的值。
//**** Find max y value of dataset
Ymax = getMaxValue(U_Limit);
if(Ymax < 10){
Ymax = 10;
}else{
Ymax = Ymax*1.1;
}
//**** Find int value of number of digits in max y value
int PLAY_FACTOR = text_label_size*.5 // you may have to play around with this value
int leftMargin = (Double.toString(Math.round(Ymax)).length())*PLAY_FACTOR;
int margins[] = { 26, leftMargin, botMargin, 14 }; // Top,Left,Bottom,Right
renderer.setMargins(margins);
找到了一个更好的解决方案,如果您使用带有负值的 setYLabelsVerticalPadding ,您可以将标签向下移动一点......这样无论怎样,上面的 Y 标签都将可见。
希望能帮助到你。