如何从绘图中删除标记并使其平滑

2024-06-25 23:33:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在尝试绘制一个平滑的图形,下面是我的代码


import matplotlib.pyplot as plt

#fig,axes= plt.subplots(nrows=6, ncols=1, squeeze=False)

x = df["DOY"]
y = df["By"]
z = df["Bz"]
a = df["Vsw"]
b = df["Nsw"]
c = df["magnetopause_distance"]
d = df["reconnection_rate"]

在那之后,我用下面的逻辑来画同样的图

#create a figure
fig=plt.figure()

#define subplots and define their position
plt1=fig.add_subplot(611)
plt2=fig.add_subplot(612)
plt3=fig.add_subplot(613)
plt4=fig.add_subplot(614)
plt5=fig.add_subplot(615)
plt6=fig.add_subplot(616)

plt1.plot(x,y,'black',linewidth=0.5,marker=None)
plt1.set_ylabel("By")
plt1.set_title("3-6 July 2003")


plt2.plot(x,z,'black',linewidth=0.5)
plt2.set_ylabel("Bz")

plt3.plot(x,a,'black',linewidth=0.5)
plt3.set_ylabel("Vsw")

plt4.plot(x,b,'black',linewidth=0.5)
plt4.set_ylabel("Nsw")

plt5.plot(x,c,'black',linewidth=0.5)
plt5.set_ylabel("MD")

plt6.plot(x,d,'black',linewidth=0.5)
plt6.set_ylabel("MRR")


plt.subplots_adjust(hspace = 2,wspace = 2)



#saving plot in .jpg format
plt.savefig('myplot01.jpg', format='jpeg',dpi=500, bbox_inches='tight')

最后,我得到了这样一个情节: enter image description here

我想要的是这样的东西: enter image description here

对不起,我打错了。谢谢您的时间:)


Tags: adddfplotfigpltblacksetsubplot
1条回答
网友
1楼 · 发布于 2024-06-25 23:33:43

使用:

from scipy.interpolate import UnivariateSpline
import numpy as np

list_x_new = np.linspace(min(x), max(x), 1000)
list_y_smooth = UnivariateSpline(x, y, list_x_new)

plt.plot(list_x_new, list_y_smooth)
plt.show() 

对于其中一个图形,您可以根据要绘制的值替换list_y_smooth中的值来代替y

相关问题 更多 >