在python中使用mpl_toolkits.axes_grid1库的host_subplot()函数绘制双y轴曲线带误差线图
发布时间:2023-12-29 18:03:31
mpl_toolkits.axes_grid1库是Matplotlib的一个扩展库,可以提供更多的定制化功能和布局选项。其中的host_subplot()函数可以绘制具有多个子图,并且每个子图可以拥有自己的y轴。
要使用host_subplot()函数绘制双y轴曲线带误差线图,首先需要导入相关的库和模块:
import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.axes_grid1 import host_subplot
接下来,创建一些模拟数据来绘制图表。我们可以使用numpy中的random模块生成一些随机的数据:
np.random.seed(0) x = np.arange(0, 10, 0.1) y1 = np.sin(x) + np.random.normal(0, 0.1, len(x)) y2 = np.cos(x) + np.random.normal(0, 0.1, len(x))
在host_subplot()函数中,我们需要指定图表的尺寸和布局。可以使用add_subplot()函数来添加子图,并且指定位置和尺寸。对于 个y轴,我们可以将其放置在左侧,而第二个y轴可以放置在右侧:
fig = plt.figure(figsize=(10, 6)) ax1 = host_subplot(111) ax2 = ax1.twinx()
然后,分别绘制两个曲线,以及对应的误差线。可以使用plot()函数绘制曲线,使用fill_between()函数绘制误差线。需要注意的是,fill_between()函数需要指定x轴的坐标和y轴的范围:
ax1.plot(x, y1, 'b-', label='sin(x)') ax2.plot(x, y2, 'r-', label='cos(x)') ax1.fill_between(x, y1 - 0.1, y1 + 0.1, alpha=0.2, color='blue') ax2.fill_between(x, y2 - 0.1, y2 + 0.1, alpha=0.2, color='red')
接下来,我们可以对图表进行一些设置,如添加标题、设置轴标签和图例等:
ax1.set_xlabel('x')
ax1.set_ylabel('sin(x)')
ax2.set_ylabel('cos(x)')
ax1.set_title('Double Y-axis Plot')
ax1.legend(loc='upper left')
ax2.legend(loc='upper right')
plt.show()
最后,使用plt.show()函数显示图表。
完整的代码如下所示:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import host_subplot
np.random.seed(0)
x = np.arange(0, 10, 0.1)
y1 = np.sin(x) + np.random.normal(0, 0.1, len(x))
y2 = np.cos(x) + np.random.normal(0, 0.1, len(x))
fig = plt.figure(figsize=(10, 6))
ax1 = host_subplot(111)
ax2 = ax1.twinx()
ax1.plot(x, y1, 'b-', label='sin(x)')
ax2.plot(x, y2, 'r-', label='cos(x)')
ax1.fill_between(x, y1 - 0.1, y1 + 0.1, alpha=0.2, color='blue')
ax2.fill_between(x, y2 - 0.1, y2 + 0.1, alpha=0.2, color='red')
ax1.set_xlabel('x')
ax1.set_ylabel('sin(x)')
ax2.set_ylabel('cos(x)')
ax1.set_title('Double Y-axis Plot')
ax1.legend(loc='upper left')
ax2.legend(loc='upper right')
plt.show()
运行以上代码,就可以绘制出双y轴曲线带误差线图。
这个例子演示了如何使用mpl_toolkits.axes_grid1库的host_subplot()函数来绘制双y轴曲线带误差线图,并添加了标题、轴标签和图例等元素,可以根据需要进行修改和定制。
