Python 可视化的魔力:创建双轴图表完全指南 (2024)
您是否曾爱上双轴图表这种查看数据的新方法? Python 可视化不再只是专家的专利,今天我们将带你使用 Python 制作令人惊叹的图表。

了解双轴图表
双轴图表是一种功能强大的可视化工具,可以让你在一张图表上有效地表示不同比例的数据。双轴图对于同时表示不同范围的数据(如股票价格和交易量)尤其有用。
Python 可视化代码
import matplotlib.pyplot as plt
import numpy as np
准备 # 数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = 100 * np.cos(x)
生成 # 图形
fig, ax1 = plt.subplots(figsize=(10, 6))
# 设置第一个 y 轴
color = 'tab:blue
ax1.set_xlabel('X 轴')
ax1.set_ylabel('First Y axis', color=colour)
line1 = ax1.plot(x, y1, color=colour, label='Sin')
ax1.tick_params(axis='y', labelcolor=colour)
# 创建第二个 y 轴
ax2 = ax1.twinx()
color = 'tab:red' 颜色
ax2.set_ylabel('Second Y axis', color=colour)
line2 = ax2.plot(x, y2, color=colour, label='Cos')
ax2.tick_params(axis='y', labelcolor=colour)
plt.title('Python 可视化:双轴图表示例')
plt.show()使用双轴图表的注意事项
双轴图表是一种功能强大的工具,但应谨慎使用。以下是构建双轴图表时需要考虑的一些关键注意事项:
管理数据规模
- 刻度设置应谨慎;不正确的刻度会使数据解释出现偏差。
- 您需要调整刻度,使两个数据序列之间的关系清晰明了。
视觉清晰度
- 每个轴和数据系列都有不同的颜色。
- 适当调整图例的位置,以确保可读性。
- 添加网格线,使数据更易于阅读。
考虑替代方案
- 如果数据序列差异太大,可以考虑将它们分开绘制成不同的图表。
- 使用指数图表或标准化数值也是一个不错的选择。
使用案例
在 Python 可视化技术中,双轴图表在很多领域都很有用,但在以下情况下尤其有价值:
股市分析
- 通过同时显示股票价格和交易量,您可以了解价格变动和交易活动之间的关系。
- 通过显示股票价格和技术指标(如 MACD、RSI)来分析趋势和动量
分析气象数据
- 同时显示温度和降水量,全面了解天气模式。
- 同时显示温度和湿度,以分析复杂的天气现象,如体温或不适指数。
分析经济指标
- 直观了解国内生产总值与失业率之间的关系,从而理解经济增长与就业市场之间的联系。
- 您可以通过同时显示通货膨胀率和利率来分析货币政策的效果。
分析营销业绩
- 通过同时显示广告支出和销售额,您可以评估营销效率。
- 通过同时显示客户获取率和转换率,您可以分析营销活动的效果。
能耗分析
- 通过同时显示耗电量和室外温度,您可以了解天气对能源需求的影响。
- 您可以通过比较可再生能源的生产和化石燃料的使用来分析能源转型的趋势。
双轴图表可以让您有效地比较不同单位或比例的数据,帮助您直观地理解复杂的关系。 不过,在使用双轴图表时,您应注意比例设置,以确保它们不会歪曲您对数据的解释。
# 另一个例子

# 代码块
import matplotlib.pyplot as plt
import numpy as np
准备 # 数据
x = np.range(0, 10, 1)
y1 = np.random.randint(1, 10, size=10)
y2 = np.random.randint(10, 100, size=10)
生成 # 图形
fig, ax1 = plt.subplots(figsize=(10, 6))
# 设置第一个 Y 轴(条形图)
color = 'tab:purple
ax1.set_xlabel('X 轴')
ax1.set_ylabel('First Y axis', color=colour)
ax1.bar(x, y1, color=colour, alpha=0.6, label='数据 1')
ax1.tick_params(axis='y', labelcolor=color)
# 创建第二个 Y 轴(折线图)
twin_ax = ax1.twinx()
color = 'tab:pink' 颜色
twin_ax.set_ylabel('Second Y axis', color=colour)
twin_ax.plot(x, y2, color=colour, marker='o', label='Data 2')
twin_ax.tick_params(axis='y', labelcolor=color)
设置 # 标题和图例
plt.title('Dual Axis Chart Example: Bar and Line Graph')
fig.tight_layout()
plt.show()# 代码评注
- 导入所需库函数(matplotlib、numpy)。
- 使用 NumPy 生成 x 轴数据和两个 y 轴数据(y1、y2)。
plt.subplots()来创建图形对象和第一个轴(ax1)。- 设置第一个 Y 轴:
- 用紫色条形图显示 Y1 数据。
- 设置 x 轴和 y 轴标签。
ax1.twinx()来创建第二个 Y 轴(twin_ax):- 用粉红色折线图显示 Y2 数据。
- 设置第二个 Y 轴标签。
- 为图表设置标题、
tight_layout()来调整布局,然后显示图表。
# 术语表
- 双轴图表一种图表,在一张图表上使用两个 y 轴,同时表示不同比例或单位的数据序列。
- matplotlibPython 编程语言的数据可视化库,允许您创建各种类型的图形和图表。
- NumPy用于数值计算的 Python 库,可高效处理大型多维数组和矩阵。
- plt.subplots():matplotlib 中的函数,用于创建一个新图形和一个或多个坐标轴。
- ax1.twinx():matplotlib 方法,用于创建新的 y 轴,同时与现有轴共享 x 轴。用于创建双轴图表。
- tight_layout():matplotlib 中的一个函数,用于自动调整图形元素之间的间距以避免重叠。
- 规模图表中表示数据值的单位或范围。在双轴图表中,每个轴可以使用不同的刻度。
- 正常化将不同范围的数据转换为通用刻度的过程。可用于替代双轴图表。
如果你对这样的图表感兴趣,那么你可能也会对 Python 可视化的不寻常图表感兴趣。 利用 Python 可视化技术创建比较成绩变化的图表:用颜色标记分数的增加/减少 查看帖子中的一些独特图表!






