这个wiki页面的重点介绍AxisBase类,它是XAxis(X轴)和YAxis(Y轴)两者的基类,在v2.0.0中引入。
下面提到的以下方法可以应用于两个轴。
这个轴类允许特定的样式,包括(可以包括)以下组件/部件:
- 标签(以垂直(y轴)或水平(x轴)对齐绘制),其中包含轴描述值
- 所谓的“轴线”被直接绘制在标签上并与之平行
- “网格线”,各自源自水平方向的轴标签
- LimitLines允许提供特殊信息,如边界或约束
控制应绘制哪些零件(轴)
- setEnabled(boolean enabled):设置轴启用或禁用。如果禁用,无论任何其他设置如何,都不会绘制轴的任何部分。
- setDrawLabels(boolean enabled):将其设置为true可以绘制轴的标签。
- setDrawAxisLine(boolean enabled):如果沿着轴(轴线)的线应该被绘制,则将其设置为true。
- setDrawGridLines(boolean enabled):将其设置为true可以绘制轴的网格线。
自定义轴范围(最小/最大)
- setAxisMaximum(float max):设置此轴的自定义最大值。如果设置,此值将不会根据提供的数据自动计算。
- resetAxisMaximum():调用此命令来撤销先前设置的最大值。通过这样做,您将再次允许轴自动计算它的最大值。
- setAxisMinimum(float min):设置此轴的自定义最小值。如果设置,此值将不会根据提供的数据自动计算。
- resetAxisMinimum():调用此命令来撤消先前设置的最小值。通过这样做,您将再次允许轴自动计算它的最小值。
- setStartAtZero(boolean enabled):已弃用 - 使用setAxisMinValue(…)或setAxisMaxValue(…)替代。
- setInverted(boolean enabled):如果设置为true,则该轴将反转,这意味着最高值将在底部,最低值在顶部。
- setSpaceTop(float percent):与轴上的最高值相比,设置图表中最高值的顶部间距(以总轴范围的百分比表示)。
- setSpaceBottom(float percent):与轴上的最低值相比,设置图表中最低值的底部间距(以总轴范围的百分比表示)。
- setShowOnlyMinMax(boolean enabled):如果启用,该轴将仅显示其最小值和最大值。这将忽略/覆盖定义的标签计数(如果不强制)。
- setLabelCount(int count, boolean force):设置y轴的标签数量。请注意,这个数字是不固定的(如果强制== false),只能近似。如果强制启用(true),则绘制精确的指定标签计数 - 这可能导致轴上的数字不均匀。
- setPosition(YAxisLabelPosition pos):设置绘制轴标签的位置。INSIDE_CHART或OUTSIDE_CHART。
- setGranularity(float gran):设置y轴值之间的最小间隔。这可以用于在放大到为轴设置的小数位数不再允许区分两个轴值的点时避免重复值。
- setGranularityEnabled(boolean enabled):启用限制放大时y轴间隔的粒度特征。默认值:false
样式/修改轴
- setTextColor(int color):设置轴标签的颜色。
- setTextSize(float size):设置dp中轴标签的文本大小。
- setTypeface(Typeface tf):设置Typeface轴标签的自定义。
- setGridColor(int color):设置此轴的网格线的颜色。
- setGridLineWidth(float width):设置此轴的网格线的宽度。
- setAxisLineColor(int color):设置此轴的轴线的颜色。
- setAxisLineWidth(float width):设置此轴的轴线的宽度。
- enableGridDashedLine(float lineLength, float spaceLength, float phase):允许以虚线模式绘制网格线,例如像这样的“ - - - - - ”。“lineLength”控制线段的长度,“spaceLength”控制线间的空间,“phase”控制起点。
格式化轴值
- 对于格式化轴值,可以使用IAxisValueFormatter界面,它的介绍在这里。
- 您可以使用axis.setValueFormatter(IAxisValueFormatter formatter)方法将自定义格式化程序设置给轴。
限制线
这两个轴支持所谓的LimitLines允许呈现特殊信息,如边界或约束。LimitLines添加到YAxis水平方向,并在垂直方向添加到XAxis。下边是您如何LimitLines从轴上添加和删除:
addLimitLine(LimitLine l):LimitLine向此轴添加新的。
removeLimitLine(LimitLine l):LimitLine从该轴移除指定的。
更多添加/删除可用的方法。
setDrawLimitLinesBehindData(boolean enabled):允许控制LimitLines和实际数据之间的z顺序。如果设置为true,则将LimitLines其拖放到实际数据之后,否则返回顶部。默认值:false
限制线(类LimitLine)(名称可能指示)可以使用简单线条为用户提供附加信息。
例如,您的图表可能会显示用户使用应用程序记录的各种血压测量结果。为了通知用户,超过140 mmHg的收缩压被认为是健康风险,您可以添加LimitLine140以提供该信息。
示例代码
YAxis leftAxis = chart.getAxisLeft();
LimitLine ll = new LimitLine(140f, "Critical Blood Pressure");
ll.setLineColor(Color.RED);
ll.setLineWidth(4f);
ll.setTextColor(Color.BLACK);
ll.setTextSize(12f);
// .. and more styling options
leftAxis.addLimitLine(ll);