当前位置: 首页 > news >正文

Matplotlib 怎么设置坐标轴刻度?

什么是轴刻度?

在 Matplotlib 库中,轴刻度指的是沿轴显示和间隔值的办法。Matplotlib 支持多种类型的刻度,这些刻度会影响数据在轴上的可视化和分布方式。

matplotlib 库中有几种常见的轴刻度,它们是:

  • Linear Scale(默认)

  • Logarithmic Scale

  • Symmetrical Logarithmic Scale (Symlog)

选择合适的轴刻度取决于数据性质和所需的视觉效果。选择能够有效表示数据并在图表中传达准确信息的刻度非常重要。

不同刻度的使用场景

  • Linear− 适用于显示值之间间距均匀的数据。

  • Logarithmic− 适用于表示幅度范围宽的数据。

  • Symmetrical Logarithmic− 适用于包含正值和负值且不排除零的数据集。

实现不同刻度

让我们详细了解每种刻度在图表中的实现方式。

线性刻度

在 Matplotlib 中,线性刻度表示用于绘制数据的标准线性坐标系。它是默认应用于 x 轴和 y 轴的缩放方式,除非另有指定。

线性刻度的特性

均匀间距− 在线性刻度上,轴上的等增量表示数据中的等差异。例如,0 到 1 之间的距离与 1 到 2 之间的距离相同。

线性关系− 在线性刻度上绘制的數據点遵循线性关系,即绘图点之间的变化与数据变化成比例。

示例 - 使用线性刻度

在这个示例中,x 轴和 y 轴默认使用线性刻度。轴上的每个单位表示数据中的恒定增量。

import matplotlib.pyplot as plt # 示例数据 x = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10] # 创建带有线性刻度(默认)的图表 plt.plot(x, y) plt.xlabel('X轴') plt.ylabel('Y轴') plt.title('线性刻度图表') plt.show()
输出

对数刻度

在 Matplotlib 中,我们可以使用plt.xscale()plt.yscale()函数,或者在使用轴对象ax时使用对应的方法ax.set_xscale()ax.set_yscale(),为轴设置对数刻度。这些函数允许我们将轴的刻度更改为对数刻度。

语法

以下是将 x 轴更改为对数刻度的语法,使用plt.xscale()

plt.xscale('log')
ax.set_xscale()
ax.set_xscale('log')

以下是将 y 轴更改为对数刻度的语法,使用plt.yscale()

plt.yscale('log')
使用 ax.set_yscale()
ax.set_yscale('log')
示例 - 使用对数刻度

这是一个演示如何为 x 轴和 y 轴设置对数刻度的示例

import matplotlib.pyplot as plt # 示例数据 x = [1, 2, 3, 4, 5] y = [10, 100, 1000, 10000, 100000] # 创建带有两个轴的对数刻度的图表 plt.plot(x, y) # 为 x 轴和 y 轴设置对数刻度 plt.xscale('log') plt.yscale('log') plt.xlabel('X轴 (对数刻度)') plt.ylabel('Y轴 (对数刻度)') plt.title('对数刻度图表') plt.show()
输出

对称对数刻度 (Symlog)

在 Matplotlib 中,对称对数刻度通常称为symlog,它允许在对数刻度上绘制数据,同时对零附近的正值和负值进行对称处理。

symlog刻度结合了零附近的值的线性缩放和远离零的值的对数缩放。

语法

以下是为轴设置对称对数刻度的语法 −

对于 x 轴
plt.xscale('symlog', linthresh=base, linscale=lin_scale)
对于 y 轴
plt.yscale('symlog', linthresh=base, linscale=lin_scale)

其中,

  • linthresh− 线性阈值,决定了线性行为和对数行为之间转换的位置。

  • base− 对数的底数(默认为 10)。

  • linscale− 零附近线性范围的缩放因子(默认为 1.0)。

示例 - 使用对称对数刻度

在这个示例中,plt.yscale('symlog', linthresh=0.1)将 y 轴设置为对称对数刻度,线性阈值 (linthresh) 为 0.1。接近零的值将以线性方式显示,而远离零的值将遵循对数刻度。

import matplotlib.pyplot as plt import numpy as np x = np.linspace(-10, 10, 500) y = np.sinh(x) plt.plot(x, y) plt.yscale('symlog', linthresh=0.1) # 为 y 轴应用对称对数刻度 plt.title('对称对数刻度图表') plt.show()
输出

使用不同刻度的图表

在这个示例中,我们使用 matplotlib 库绘制带有不同刻度的图表。

示例 - 同时使用多种刻度
import numpy as np import matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True t = np.arange(0.01, 10.0, 0.01) data1 = np.exp(t) data2 = np.sin(2 * np.pi * t) fig, ax1 = plt.subplots() color = 'red' ax1.set_xlabel('时间 (s)') ax1.set_ylabel('exp', color=color) ax1.plot(t, data1, color=color) ax1.tick_params(axis='y', labelcolor=color) ax2 = ax1.twinx() color = 'blue' ax2.set_ylabel('sin', color=color) ax2.plot(t, data2, color=color) ax2.tick_params(axis='y', labelcolor=color) plt.show()
输出

Matplotlib 中具有不同刻度的多个轴

在这个示例中,我们将看到如何创建共享的 Y 轴。

示例 - 使用多个轴的刻度
import matplotlib.pyplot as plt fig, ax1 = plt.subplots() ax1.plot([1, 2, 3, 4, 5], [3, 5, 7, 1, 9], color='red') ax2 = ax1.twinx() ax2.plot([11, 12, 31, 41, 15], [13, 51, 17, 11, 76], color='blue') fig.tight_layout() plt.show()
输出

http://www.jsqmd.com/news/652601/

相关文章:

  • 别再让机器人原地打转了!详解Gazebo中skid_steer_drive_controller插件与URDF坐标系设置的避坑指南
  • Windows远程桌面mstsc命令的隐藏玩法:从编辑RDP文件到多显示器适配
  • Linux基础开发工具(git篇)
  • 告别Windows和TwinCAT:用树莓派+开源IgH搭建低成本EtherCAT主站测试平台
  • 基于STM32与TEA5767的FM收音机硬件系统设计:从原理图到模块选型
  • 【项目实战】Kubernetes 排障指南:如何高效查询 Pod 日志
  • 终极Autosub快速入门:5分钟学会为视频添加自动字幕的完整指南
  • Linux_01(基础命令)
  • DICOM WSI标准:从金字塔结构到像素矩阵的病理图像数字化实践
  • 利用x-anylabeling与Labelme格式互转,提升数据标注效率
  • 别再死记硬背UVM框图了!用PHPStudy+ModelSim手把手搭建你的第一个验证平台(附完整代码)
  • 解锁Simple Transformers的终极潜能:多模态分类与对话AI实战指南
  • 终极Gradle Play Publisher认证指南:Service Account配置与权限设置全攻略
  • 拆解T265视觉定位:除了给PX4发数据,树莓派上的ROS节点还能怎么玩?
  • 大模型 kimi / deepseek /豆包/元宝 网页版登录
  • P数据库链接包使用指南,jsp连接数据库包科普,轻松掌握数据交互基础
  • Chart.js项目实战:AI技术发展轨迹监控系统
  • CANFD数据帧解析实战:从示波器波形到STM32代码,一步步看懂那64个字节怎么传
  • SkeyeVSS开发日志: Skeyevss日志采集方案落地实践
  • Win Docker ClickHouse 数据卷挂载方案:解决本地目录写入权限与Inode限制
  • 从FreeRTOS转战Zephyr:一个老嵌入式工程师的Ubuntu环境搭建与初体验笔记
  • DownKyi:5步掌握B站视频下载与管理的终极技巧
  • React Native Spinkit跨平台兼容性指南:iOS与Android差异处理
  • BLIP2实战:从零到一,手把手教你部署多模态视觉语言模型
  • LLM编排层事务断裂真相,深度拆解向量数据库与微服务协同中的Saga补偿盲区
  • 从“独上高楼”到“炸鸡啤酒”:Top_p参数如何让AI续写古诗时“跑偏”或“封神”?
  • 垃圾回收机制
  • Linux开发工具(gdb/cgdb篇)
  • 排序算法入门:冒泡、选择、插入排序详解
  • 如何打造无网络环境下的iScroll开发参考方案:完整离线文档指南