图形和图例之间的空间太大,x 标签也会被切断

Posted

技术标签:

【中文标题】图形和图例之间的空间太大,x 标签也会被切断【英文标题】:Too much space between graph and legend also x labels get cut off 【发布时间】:2018-08-05 01:15:47 【问题描述】:

x 标签的名称太长,无法按原样显示,所以我决定将它们旋转-45 度xAxis.setLabelRotationAngle(-45);

最终结果如下图所示。正如您所看到的,最后一个 x 标签被切断了......而且图形和图例之间的空间太大。

代码的相关部分:

BarData data = new BarData(arBdataSet);
data.setValueTextSize(12f);

float groupSpace = 0.02f;
float barSpace = 0.01f;
float barWidth=(1-groupSpace-(barSpace*intemInGroups))/intemInGroups;

data.setBarWidth(barWidth);
Legend leg=barChart.getLegend();
leg.setEnabled(true);
leg.setCustom(lear);
leg.setWordWrapEnabled(true);

barChart.setVisibility(View.VISIBLE);
barChart.setData(data);

YAxis leftAxis = barChart.getAxisLeft();
leftAxis.setValueFormatter(new MyGraphValFormatter(getResources()));
leftAxis.setSpaceTop(1f);
leftAxis.setAxisMinimum(0f);

XAxis xaPc=barChart.getXAxis();
xaPc.setLabelRotationAngle(-45);
xaPc.setPosition(XAxis.XAxisPosition.TOP);
xaPc.setGranularity(1f);

xaPc.setValueFormatter(new IAxisValueFormatter() 

   @Override
   public String getFormattedValue(float value, AxisBase axis) 
       int val=opeHel.adjustNumberToFitArrayList((int)value,xLabelNames);
       return xLabelNames.get(val);
   

);

xaPc.setCenterAxisLabels(true);

barChart.getXAxis().setAxisMinimum(0);
barChart.getXAxis().setAxisMaximum(0 + barChart.getBarData().getGroupWidth(groupSpace, barSpace) * xLabelNames.size());
barChart.groupBars(0, groupSpace, barSpace);
barChart.getDescription().setEnabled(false);

barChart.setFitBars(true);
barChart.invalidate();

问题:

如何删除图表和图例之间的多余空间(我希望该图表占用尽可能多的空间,当然,图例必须是可见的......)? 我怎样才能防止最后一个 x 标签不会被切断(当然没有删除它)?

【问题讨论】:

【参考方案1】:

我认为它会自动添加偏移量,因为您旋转了标签。也许它已在新版本中修复。如果没有,请使用它:

setExtraOffsets(0f, 0f, 0f, 0f)

【讨论】:

以上是关于图形和图例之间的空间太大,x 标签也会被切断的主要内容,如果未能解决你的问题,请参考以下文章

HighChart图形标签切断了问题

UITableview 填充图像:图像之间的空间太大

plotly.js 图例与图形重叠

从图形 matplotlib 烛台中删除缺少的日期空间和技巧标签

UICollectionView 布局间距问题。单元格之间的空间太大

更改图例标签时,Matplotlib 图例颜色会发生变化