python100天80用fill_between填充曲线图
专栏
2023-03-28 14:54
836
如下图我们通常会看到如下的有颜色的拆线图。

首先我们先定义两条拆线的X坐标,和两个Y坐标
x = np.arange(1,23,2)
y1 = np.array([2,3,6,5,10,10,12,14,18,20,20])
y1_err = np.array([0.6, 0.7, 0.5, 0.8, 0.5, 0.3, 0.2, 0.3, 0.6, 0.9, 0.7]) * 1.2
y2 = y1 + np.random.rand() * 4
y2_err = y1_err + np.random.rand()np.arange(函数说明:,使用此函数生成x坐标
x = np.arange(1,23,2)
numpy.arange(start, stop, step, dtype)
根据 start 与 stop 指定的范围以及 step 设定的步长,生成一个 ndarray。
生成两个Y坐标
y1 = np.array([2,3,6,5,10,10,12,14,18,20,20])
y1_err = np.array([0.6, 0.7, 0.5, 0.8, 0.5, 0.3, 0.2, 0.3, 0.6, 0.9, 0.7]) * 1.2
y2 = y1 + np.random.rand() * 4
y2_err = y1_err + np.random.rand(
那么要在两条拆线之间填充颜色
画第一条拆线
ax.plot(x, y1,)
ax.fill_between(x, y1+y1_err, y1-y1_err, alpha=0.15)画第二条拆线
ax.plot(x, y2,)
ax.fill_between(x, y2+y2_err, y2-y2_err, alpha=0.15)最后画此图的完整代码
def main():
def main():
x = np.arange(1,23,2)
y1 = np.array([2,3,6,5,10,10,12,14,18,20,20])
y1_err = np.array([0.6, 0.7, 0.5, 0.8, 0.5, 0.3, 0.2, 0.3, 0.6, 0.9, 0.7]) * 1.2
y2 = y1 + np.random.rand() * 4
y2_err = y1_err + np.random.rand()
fig = plt.figure(figsize=(10,5))
plt.rcParams["font.size"] = 18
ax = plt.subplot(111)
ax.plot(x, y1,)
ax.fill_between(x, y1+y1_err, y1-y1_err, alpha=0.15)
ax.plot(x, y2,)
ax.fill_between(x, y2+y2_err, y2-y2_err, alpha=0.15)
ax.set_xlim(0, 24)
ax.set_ylim(0, 25)
ax.minorticks_on() #補助メモリの描写
,)
,)
ax.set_title("Errorbar")
ax.set_xlabel("X-axis")
ax.set_ylabel("Y-axis")
ax.grid()
plt.show()
if __name__ == "__main__":
main()
本站涵盖的内容、图片等数据系网络收集,部分未能与原作者取得联系。若涉及版权问题,请联系ynstorm@foxmail.com进行删除!
如下图我们通常会看到如下的有颜色的拆线图。
首先我们先定义两条拆线的X坐标,和两个Y坐标
x = np.arange(1,23,2) y1 = np.array([2,3,6,5,10,10,12,14,18,20,20]) y1_err = np.array([0.6, 0.7, 0.5, 0.8, 0.5, 0.3, 0.2, 0.3, 0.6, 0.9, 0.7]) * 1.2 y2 = y1 + np.random.rand() * 4 y2_err = y1_err + np.random.rand()np.arange(函数说明:,使用此函数生成x坐标
x = np.arange(1,23,2)
numpy.arange(start, stop, step, dtype)
根据 start 与 stop 指定的范围以及 step 设定的步长,生成一个 ndarray。
生成两个Y坐标
y1 = np.array([2,3,6,5,10,10,12,14,18,20,20])
y1_err = np.array([0.6, 0.7, 0.5, 0.8, 0.5, 0.3, 0.2, 0.3, 0.6, 0.9, 0.7]) * 1.2
y2 = y1 + np.random.rand() * 4
y2_err = y1_err + np.random.rand(
那么要在两条拆线之间填充颜色
画第一条拆线
ax.plot(x, y1,) ax.fill_between(x, y1+y1_err, y1-y1_err, alpha=0.15)画第二条拆线
ax.plot(x, y2,) ax.fill_between(x, y2+y2_err, y2-y2_err, alpha=0.15)最后画此图的完整代码
def main(): def main(): x = np.arange(1,23,2) y1 = np.array([2,3,6,5,10,10,12,14,18,20,20]) y1_err = np.array([0.6, 0.7, 0.5, 0.8, 0.5, 0.3, 0.2, 0.3, 0.6, 0.9, 0.7]) * 1.2 y2 = y1 + np.random.rand() * 4 y2_err = y1_err + np.random.rand() fig = plt.figure(figsize=(10,5)) plt.rcParams["font.size"] = 18 ax = plt.subplot(111) ax.plot(x, y1,) ax.fill_between(x, y1+y1_err, y1-y1_err, alpha=0.15) ax.plot(x, y2,) ax.fill_between(x, y2+y2_err, y2-y2_err, alpha=0.15) ax.set_xlim(0, 24) ax.set_ylim(0, 25) ax.minorticks_on() #補助メモリの描写 ,) ,) ax.set_title("Errorbar") ax.set_xlabel("X-axis") ax.set_ylabel("Y-axis") ax.grid() plt.show() if __name__ == "__main__": main()本站涵盖的内容、图片等数据系网络收集,部分未能与原作者取得联系。若涉及版权问题,请联系ynstorm@foxmail.com进行删除!