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

时间:2018-02-25 13:28:46

标签: java android bar-chart legend mpandroidchart

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();

Extra space between graph and legend

问题:

  • 如何删除图形和图例之间的额外空间(我希望实现该图形占用尽可能多的空间,当然,图例必须可见......)?
  • 如何防止最后一个x标签被切断(当然不删除它)?

1 个答案:

答案 0 :(得分:0)

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

/usr/lib/jvm/java-8-oracle/bin/java -Xms15360M -Xmx15360M -XX:MaxDirectMemorySize=8388607T -Dmykey=1000 -Dlog.file=/home/kafka/flink-1.6.0/log/flink-