Java 图形和图例之间的空间过大,x标签也会被切断
x标签的名称太长,无法按原样显示,因此我决定将它们旋转-45度Java 图形和图例之间的空间过大,x标签也会被切断,java,android,bar-chart,legend,mpandroidchart,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
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标签不会被剪掉(当然不会移除)
我认为它会自动添加偏移量,因为您旋转了标签。也许新版本已经修复了。如果没有,则使用它:
setExtraOffset(0f,0f,0f,0f)