此页面关注AxisBase类,她是XAxis (XAxis) and YAxis(YAxis)的基类。
下面提到的以下方法可以应用到这两个轴。
轴类允许特定的样式,(可以包含)由以下组件/部件组成:
- 标签(在垂直(y轴)或水平(x轴)对齐),其中包含轴描述值。
- 绘制了一个所谓的“axis-line”,在标签旁边并且和标签平行。
- “grid-lines”,每个来自一个坐标标签所在的水平方向。
- 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):为轴标签设置自定义字体。
- 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,允许提供特殊信息,如边界或约束。 添加到YAxis的LimitLine在水平方向绘制,在添加到XAxis时在垂直方向绘制。 这是从轴中添加和删除LimitLine的方法:
- addLimitLine(LimitLine l):向此轴添加新的LimitLine。
- removeLimitLine(LimitLine l):从该轴移除指定的限制线。
- 更多的添加/删除可用方法。
- setDrawLimitLinesBehindData(boolean enabled):允许控制LimitLines和实际数据之间的z顺序。 如果设置为true,则限制线绘制在实际数据后面,否则在顶部。 默认值:false。
限制线(LimitLine类)是(如名称可能指示的)简单和简单的线可以用于为用户提供附加信息。
例如,您的图表可能会显示用户使用应用程序登录的各种血压测量结果。 为了通知用户超过140 mmHg的收缩压被认为是健康风险,您可以在140添加LimitLine以提供该信息。
示例代码
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);