本节重点是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轴的标签数。请注意,此数字不是固定的(如果force == 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);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);