这YAxis是AxisBase的一个子类。这章只描述了YAxis,而不是它的超类AxisBase。
该YAxis类(比2.0.0更老版本的称呼为YLabels),是数据和一切与垂直轴相关的信息容器。每个Line-,Bar-,Scatter或CandleStickChart都有一个左YAxis对象和右YAxis对象,分别负责左轴或右轴。雷达图只有一个YAxis。默认情况下,图表的两个轴都被启用,并将被绘制。
为了获得一个实例中的YAxis类,请选择以下方法之一:
YAxis leftAxis = chart.getAxisLeft();
YAxis rightAxis = chart.getAxisRight();
YAxis leftAxis = chart.getAxis(AxisDependency.LEFT);
YAxis yAxis = radarChart.getYAxis(); //这个方法只有radarchart
在运行时,public AxisDependency getAxisDependency()用来确定该轴代表的图表的边。
在设置图表的数据之前,需要应用影响轴值范围的自定义。
轴依赖性
默认情况下,添加到图表的所有数据都会在图表左侧YAxis绘制。如果没有进一步指定和启用,则右侧的值YAxis被调整为与左轴相同的刻度。
如果您的图表需要支持不同的轴刻度,则可以通过设置数据应该绘制的轴来实现。这可以通过改变AxisDependency来完成您的DataSet目标:
LineDataSet dataSet = ... ; //获取一个数据集
dataSet.setAxisDependency(AxisDependency.RIGHT);
设置此项将更改您的数据绘制轴。
零线
除了在每个值旁边起源的网格线之外,还有一个YAxis所谓的零滚动,它在轴上的零(0)值处绘制,并且与网格线类似,但可以单独配置。
setDrawZeroLine(boolean enabled):启用/禁用绘制零线。
setZeroLineWidth(float width):设置零行的行宽。
setZeroLineColor(int color):设置零线应具有的颜色。
零线示例代码:
//数据具有AxisDependency.LEFT
YAxis left = mChart.getAxisLeft();
left.setDrawLabels(false); //无轴标签
left.setDrawAxisLine(false); //没有轴线
left.setDrawGridLines(false); //无网格线
left.setDrawZeroLine(true); //绘制零行
mChart.getAxisRight().setEnabled(false); //没有右轴
上述代码将导致zero-line如下图所示。不绘制轴值,不绘制网格线或轴线,仅只有zero-line。
更多示例代码
YAxis yAxis = mChart.getAxisLeft();
yAxis.setTypeface(...); //设置不同的字体
yAxis.setTextSize(12f); //设置文字大小
yAxis.setAxisMinimum(0f); //从零开始
yAxis.setAxisMaximum(100f); //轴最大值为100
yAxis.setTextColor(颜色。 BLACK);
yAxis.setValueFormatter(new MyValueFormatter());
yAxis.setGranularity(1f); //间隔1
yAxis.setLabelCount(6,true); //强制6个标签
// ...等等