stackoverflow.com/questions/41444573/...

ание горизонтальной гистограммы с использованиемMPAndroidChart 3.0.2. значения показаны справа от столбцов. Я мог бы использовать setValueFormatter и использовать интерфейс IAxisValueFormatter для отображения меток справа. Но значения не отображаются сейчас.

{
    HorizontalBarChart barChart = (HorizontalBarChart) itemView.findViewById(R.id.barChart);

            BarData data = new BarData();

        ArrayList<BarEntry> valueSet1 = new ArrayList<>();

        ArrayList<String> labels = new ArrayList<>();
        labels.add("January");
        labels.add("February");
        labels.add("March");
        labels.add("April");
        labels.add("May");
        labels.add("June");
        ArrayList<String> ylabels = new ArrayList<>();
        int dataCount=0;
        for (int i=0;i<6;++i) {
            BarEntry entry = new BarEntry(dataCount,(i+1)*2);
            valueSet1.add(entry);
            ylabels.add(" "+i);
            dataCount++;
        }
        List<IBarDataSet> dataSets = new ArrayList<>();
        BarDataSet bds = new BarDataSet(valueSet1, " ");
        bds.setColors(ColorTemplate.MATERIAL_COLORS);
        String[] xAxisLabels = labels.toArray(new String[0]);
        String[] yAxisLabels = ylabels.toArray(new String[0]);
        bds.setStackLabels(xAxisLabels);
        dataSets.add(bds);
        data.addDataSet(bds);
        data.setDrawValues(true);
        data.setBarWidth(0.4f);

        XAxis xaxis = barChart.getXAxis();
        xaxis.setDrawGridLines(false);
        xaxis.setPosition(XAxis.XAxisPosition.BOTTOM);
        xaxis.setGranularityEnabled(true);
        xaxis.setGranularity(1);
        xaxis.setDrawLabels(true);
        xaxis.setLabelCount(dataCount+1);
            xaxis.setXOffset(10);
            xaxis.setDrawAxisLine(false);
            CategoryBarChartXaxisFormatter xaxisFormatter = new CategoryBarChartXaxisFormatter(xAxisLabels);
            xaxis.setValueFormatter(xaxisFormatter);

            YAxis yAxisLeft = barChart.getAxisLeft();
            yAxisLeft.setEnabled(false);

            YAxis yAxisRight = barChart.getAxisRight();
           yAxisRight.setPosition(YAxis.YAxisLabelPosition.INSIDE_CHART);
            yAxisRight.setDrawGridLines(false);
            yAxisRight.setDrawAxisLine(false);

            Legend legend = barChart.getLegend();
            legend.setEnabled(false);

            barChart.setFitBars(true);
            barChart.setData(data);
            barChart.setDescription(null);
}
public class CategoryBarChartXaxisFormatter implements IAxisValueFormatter {

   private String[] mValues;

   public CategoryBarChartXaxisFormatter(String[] values) {
       this.mValues = values;
   }

   @Override
   public String getFormattedValue(float value, AxisBase axis) {

       int val = (int)value;
       String label="";
       if(val>=0 && val<mValues.length) {
           label= mValues[val];
       }
       else {
           label= "";
       }
       return label;
   }
}

Требуется отобразить строки меток справа и число слева, соответствующее каждой полосе. Я проверил переполнение стека и погуглил его, но пока не нашел ничего, что работает.

я понял

но это пример моего требованияЦеню некоторую помощь. Спасибо за ваше время

Ответы на вопрос(1)

Ваш ответ на вопрос