使用 Matplotlib 绘制具有多个 x 和 y 轴的图形
Graph with multiple x and y axis using Matplotlib
我查看了 Matplotlib 文档和其他 resources。
我知道当创建多轴时它们并不相互依赖,我们可以根据不同的轴绘制多条线。
但我需要绘制图表,就像两个 Y 轴包含温度(摄氏度和华氏度),并且只需要绘制一条与之相关的单线,以便第一轴用户能够检查摄氏度和第二轴华氏度。以 x 轴为范围(1 -24 小时)。
欢迎提出建议。
用twinx()
显示两个轴,将摄氏ax1
的y_limits转换为华氏ax2
的y_limits:
import matplotlib.pyplot as plt
from random import randint
x = range(1,24)
y = [randint(0,75) for x in x]
fig, ax1 = plt.subplots()
ax1.plot(x,y)
y_lim = ax1.get_ylim()
y2_lim = [x*9/5 + 32 for x in y_lim]
ax2 = ax1.twinx()
ax2.set_ylim(y2_lim)
ax1.set_ylabel('deg C')
ax2.set_ylabel('deg F')
plt.show()
我查看了 Matplotlib 文档和其他 resources。 我知道当创建多轴时它们并不相互依赖,我们可以根据不同的轴绘制多条线。 但我需要绘制图表,就像两个 Y 轴包含温度(摄氏度和华氏度),并且只需要绘制一条与之相关的单线,以便第一轴用户能够检查摄氏度和第二轴华氏度。以 x 轴为范围(1 -24 小时)。
欢迎提出建议。
用twinx()
显示两个轴,将摄氏ax1
的y_limits转换为华氏ax2
的y_limits:
import matplotlib.pyplot as plt
from random import randint
x = range(1,24)
y = [randint(0,75) for x in x]
fig, ax1 = plt.subplots()
ax1.plot(x,y)
y_lim = ax1.get_ylim()
y2_lim = [x*9/5 + 32 for x in y_lim]
ax2 = ax1.twinx()
ax2.set_ylim(y2_lim)
ax1.set_ylabel('deg C')
ax2.set_ylabel('deg F')
plt.show()