MPAndroidChart 教程:坐标轴 The Axis (AxisBase)

简介: 本节重点是AxisBase类,它是XAxis(X轴)和YAxis(Y轴)两者的基类,在v2.0.0中引入。以下提到的方法可以应用于两个轴。

本节重点是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);

 

相关文章
|
Android开发
Android Http 请求封装及使用
Android Http 请求封装及使用
435 0
|
Android开发
AS错误:Duplicate class kotlin.xxx.jdk8.DurationConversionsJDK8Kt found in modules kotlin-stdlib-1.8.22
本文描述了Android Studio中遇到的"Duplicate class found in modules"错误的解决方法,通过在`app/build.gradle`文件中使用`constraints`来排除过时的kotlin-stdlib-jdk7和kotlin-stdlib-jdk8依赖,解决了依赖冲突问题。
1392 1
|
JavaScript 数据可视化 前端开发
1.Cesium介绍及环境配置
本文中我们介绍了cesium开发环境的配置,以及vue中cesium页面的初始化
1058 0
|
8月前
|
消息中间件 监控 Docker
Docker环境下快速部署RabbitMQ教程。
至此,这次神秘而简明的部署之旅告一段落。祝你在利用RabbitMQ打造消息队列时,一切顺风顺水!
421 8
|
12月前
|
JSON API 数据格式
关键词搜索爱回收商品列表API接口(爱回收API系列)
爱回收作为二手电子产品交易平台,提供丰富的商品资源。其API接口允许开发者通过关键词搜索商品列表,获取商品名称、类别、品牌、预估回收价格等信息,支持分页展示和自定义每页数量。接口采用HTTP GET请求,响应格式为JSON。以下是Python示例代码,展示如何使用该接口进行搜索。
|
XML Java Android开发
Android Studio App开发中工具栏Toolbar、溢出菜单OverflowMenu、标签布局TabLayout的讲解及实战(实现京东App的标签导航栏,附源码)
Android Studio App开发中工具栏Toolbar、溢出菜单OverflowMenu、标签布局TabLayout的讲解及实战(实现京东App的标签导航栏,附源码)
1247 0
|
网络协议 API 开发者
无线通信模块通过TCP/IP协议实现与PC端的数据传输
本文介绍了无线通信模块借助TCP/IP协议向PC端传输数据的过程,包括数据封装、发送和接收,并以WIFI模块为例,讨论了在QT平台下实现无线数据传输的方法。通过QTcpSocket类,开发者能轻松建立WIFI模块与PC间的连接。随着无线通信技术的进步,未来将有更多创新应用出现。
473 2
|
Web App开发 JavaScript 前端开发
JS字符串补全方法padStart()和padEnd()简介
JS字符串补全方法padStart()和padEnd()简介
1196 6
|
存储 小程序 定位技术
微信小程序获取用户信息流程
微信小程序获取用户信息流程
|
存储 Java 容器
Java 中的 java.nio.FloatBuffer 类
Java 中的 java.nio.FloatBuffer 类
230 0