В моем приложении Android у меня есть гистограмма, которую я сделал с помощью MPAndroidChart
. Моя проблема заключается в том, что на гистограмме имеется несколько баров, а метки значений над каждой панелью перекрываются с другими знаками значений, как показано на прилагаемом скриншоте, приведенном ниже. Я знаю, это потому, что нет места для отображения метки, но я думаю, что этого можно избежать, если можно повернуть метку значения на 90 градусов, как на ярлыках XAxis на моем снимке экрана. Так возможно? Если я увеличил масштаб изображения, я могу ясно видеть все значения. Я использую MPAndroidChart
v3.0.1.MPAndroidChart: Можно ли повернуть метки значений для заданного DataSet?
Ниже мой код.
yVals1 = new ArrayList<BarEntry>();
xVals = new ArrayList<String>();
for (int i = 0; i < listChart.size(); i++){
BarEntry newBEntry = new BarEntry(i,listChart.get(i).getAmount());
xVals.add(listChart.get(i).getAltName());
yVals1.add(newBEntry);
}
BarDataSet set1;
if (bChartRepOne.getData() != null && bChartRepOne.getData().getDataSetCount() > 0) {
set1 = (BarDataSet) bChartRepOne.getData().getDataSetByIndex(0);
set1.setValues(yVals1);
bChartRepOne.getData().notifyDataChanged();
bChartRepOne.notifyDataSetChanged();
} else {
set1 = new BarDataSet(yVals1, chart);
set1.setColors(ColorTemplate.MATERIAL_COLORS);
ArrayList<IBarDataSet> dataSets = new ArrayList<IBarDataSet>();
dataSets.add(set1);
BarData data = new BarData(dataSets);
data.setValueTextSize(8f);
bChartRepOne.setData(data);
}
XAxis xAxis = bChartRepOne.getXAxis();
xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
xAxis.setDrawGridLines(false);
xAxis.setLabelCount(xList.size()-1);
xAxis.setGranularity(1f); // only intervals of 1 day
xAxis.setValueFormatter(new IAxisValueFormatter() {
@Override
public String getFormattedValue(float value, AxisBase axis) {
if(Math.round(value) >= xList.size()) {
return null;
} else {
return xList.get(Math.round(value));
}
}
});
xAxis.setLabelRotationAngle(-90);
YAxis leftAxis = bChartRepOne.getAxisLeft();
leftAxis.setLabelCount(8, false);
leftAxis.setPosition(YAxis.YAxisLabelPosition.OUTSIDE_CHART);
leftAxis.setSpaceTop(15f);
YAxis rightAxis = bChartRepOne.getAxisRight();
rightAxis.setEnabled(false);
Legend l = bChartRepOne.getLegend();
l.setEnabled(false);
bChartRepOne.setOnChartValueSelectedListener(new OnChartValueSelectedListener() {
@Override
public void onValueSelected(Entry entry, Highlight highlight) {
}
@Override
public void onNothingSelected() {
}
});
Может у пожалуйста, покажите мне, как создать myCustomRenderer.Also каковы значения с, текст, X, Y, краски, якорь в drawXAxisValue() ?? \ – KJEjava48
ли такое же решение работает для горизонтали bar chart.And также этот метод изменения углов ярлыков вызывает любую задержку? – KJEjava48
@ KJEjava48 это точно так же для горизонтальной гистограммы или где-либо еще в библиотеке, где нет открытого API, открытого для вращения. Этот или _any_ метод изменения углов ярлыков вызовет небольшой (но, вероятно, незаметный) удар производительности. –