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