如何在android mpchart中获取Y轴标签?

如何在android mpchart中获取Y轴标签?,android,charts,bar-chart,mpandroidchart,Android,Charts,Bar Chart,Mpandroidchart,我用相应的X轴和Y轴绘制了这个图 现在,如何获得Y轴标签,并在Y轴上比较和放置另一个标签 例如: 我得到的Y轴标签是1,2,3,4,5等等。现在如何为相应的标签指定为 如果是2,那么低。 如果是10,那么高。 如果是15,那么就非常高。 最重要的是,我们是至高无上的 所以我的问题是如何获得Y轴标签,然后更改并分配它? 可以在y轴上使用字符串吗 例如: 我需要在y轴上显示为低,而不是左右y轴上的2。以及如何删除显示图形中的数字?ie 2.00 这是一段代码 List<BarEntry&

我用相应的X轴和Y轴绘制了这个图

现在,如何获得Y轴标签,并在Y轴上比较和放置另一个标签

例如:

我得到的Y轴标签是1,2,3,4,5等等。现在如何为相应的标签指定为

如果是2,那么低。 如果是10,那么高。 如果是15,那么就非常高。 最重要的是,我们是至高无上的

所以我的问题是如何获得Y轴标签,然后更改并分配它? 可以在y轴上使用字符串吗

例如:

我需要在y轴上显示为低,而不是左右y轴上的2。以及如何删除显示图形中的数字?ie 2.00

这是一段代码

  List<BarEntry> entries = new ArrayList<>();
    ArrayList<String> labels = new ArrayList<String>();
    mDetectiveGraphExecutor = new DetectiveGraphExecutor(this);
    barChart = (BarChart) findViewById(R.id.chart);
    YAxis leftAxis = barChart.getAxisRight();
    leftAxis.removeAllLimitLines();
    barChart.setDescription("");
    leftAxis.setEnabled(false);
    ViewPortHandler handlers = barChart.getViewPortHandler();
    handlers.setMaximumScaleX(10);
entries.add(new BarEntry(activities.size(), ++columnIndex)); //list of datas displaying.. 
        labels.add("Time");
        BarDataSet dataset = new BarDataSet(entries, "# Counts");
        BarData data = new BarData(labels, dataset);
        barChart.setData(data);
List entries=new ArrayList();
ArrayList标签=新的ArrayList();
MDetActiveGraphExecutor=新的检测eGraphExecutor(此);
条形图=(条形图)findViewById(R.id.chart);
YAxis leftAxis=条形图。getAxisRight();
leftAxis.removeAllLimitLines();
条形图。设置说明(“”);
leftAxis.setEnabled(false);
ViewPortHandler handlers=barChart.getViewPortHandler();
setMaximumScaleX(10);
添加(新的BarEntry(activities.size(),++columnIndex))//显示..的数据列表。。
标签。添加(“时间”);
BarDataSet数据集=新的BarDataSet(条目“#计数”);
BarData数据=新的BarData(标签、数据集);
条形图.设置数据(数据);

尝试覆盖Y轴渲染器。 下面是一个例子:

setRendererRightYAxis(new YAxisRenderer(mViewPortHandler, mAxisRight, mRightAxisTransformer)
    {
        @Override
        protected void drawYLabels(Canvas c, float fixedPosition, float[] positions, float offset)
        {
            ArrayList<String> yLabels = new ArrayList<>();
            yLabels.add("10 " + getResources().getString(R.string.low));
            yLabels.add("20 " + getResources().getString(R.string.medium));
            yLabels.add("30 " + getResources().getString(R.string.high));

            for (int i = 0; i < _yLabels.size(); i++)
            {
                c.drawText(yLabels.get(i), fixedPosition, positions[i * 2 + 1] + offset, mAxisLabelPaint);
            }
        }
    });

如果需要更改y轴上的值,请使用此代码

YAxis yAxis = water_graph.getAxisLeft();//for left side value changes

YAxis yAxis = water_graph.getAxisRight(); //for right side value changes

     yAxis.setGranularityEnabled(true);
     yAxis.setValueFormatter(new IAxisValueFormatter() {
            @Override
            public String getFormattedValue(float value, AxisBase axis) {
                String str="";
                if(value<5)
                    str="Low";
                else if(value<10)
                    str="Medium";
                else if(value==10)
                    str="high";
                else
                    str="very high";
                return str;
            }
        });
YAxis YAxis=water_graph.getAxisLeft()//用于左侧值更改
YAxis YAxis=water_graph.getAxisRight()//用于右侧值更改
yAxis.setGranularityEnabled(真);
setValueFormatter(新的IAxisValueFormatter(){
@凌驾
公共字符串getFormattedValue(浮点值,AxisBase轴){
字符串str=“”;

如果(值)是您想要将Y轴标签从数字更改为字符串,还是想要在Y轴中将数字和字符串组合在一起?我想要将该数字更改为字符串。我要求的原因是例如:如果Y轴指向5,我需要在左右Y轴标签中显示为low。那么如何在Y轴中显示“low”。
YAxis yAxis = water_graph.getAxisLeft();//for left side value changes

YAxis yAxis = water_graph.getAxisRight(); //for right side value changes

     yAxis.setGranularityEnabled(true);
     yAxis.setValueFormatter(new IAxisValueFormatter() {
            @Override
            public String getFormattedValue(float value, AxisBase axis) {
                String str="";
                if(value<5)
                    str="Low";
                else if(value<10)
                    str="Medium";
                else if(value==10)
                    str="high";
                else
                    str="very high";
                return str;
            }
        });