python 使用matplotlib 绘制cos函数图像带有辅助线。为什么只出来cos图像没有辅助线呢?语句在下方请帮我解答
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0.05,10,1000)
y = np.cos(x)
plt.plot(x,y,ls="-",lw=2,label="plot figure")
plt.legend()
plt.show()
plt.xlim(0,10)
plt.ylim(-1.3,1.3)
plt.xlabel("x")
plt.ylabel("y")
plt.grid(axis="y")
plt.show()
plt.grid(linestyle=":",color="r")
plt.axhline(y=0.0,c="r",ls="--",lw=2)
plt.axvline(x=5.0,c="r",ls="--",lw=2)
plt.axvspan(xmin=4.0,xmax=6.0,facecolor="y",alpha=0.3)
plt.axhspan(ymin=-0.3,ymax=0.3,facecolor="y",alpha=0.3)
plt.annotate("maximum",xy=(0,1.0),xytext=((np.pi/2)+0.15,1.5),weight="bold",color="b",arrowprops=dict(arrowstyle="->",connectionstyle="arc3",color="b"))
plt.text(2,0,"y=cos(x)",weight="bold",color="b")
plt.title("y=cos(x)")
例图是这样的:
这是因为在代码中,有多个 plt.show() 函数,而每次调用该函数时,会将前面创建的图形显示出来并清空当前图形。
因此,在第一个 plt.show() 函数被调用之后,前面的图像被显示并清空,所以后面的辅助线和注释无法显示。
如果您想要同时显示图像和辅助线,您可以将所有 plt 函数的调用放在一起,并且只调用一个 plt.show() 函数。例如:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0.05,10,1000)
y = np.cos(x)
plt.plot(x, y, ls="-", lw=2, label="plot figure")
plt.legend()
plt.xlim(0,10)
plt.ylim(-1.3,1.3)
plt.xlabel("x")
plt.ylabel("y")
plt.grid(axis="y")
plt.grid(linestyle=":",color="r")
plt.axhline(y=0.0,c="r",ls="--",lw=2)
plt.axvline(x=5.0,c="r",ls="--",lw=2)
plt.axvspan(xmin=4.0,xmax=6.0,facecolor="y",alpha=0.3)
plt.axhspan(ymin=-0.3,ymax=0.3,facecolor="y",alpha=0.3)
plt.annotate("maximum",xy=(0,1.0),xytext=((np.pi/2)+0.15,1.5),weight="bold",color="b",arrowprops=dict(arrowstyle="->",connectionstyle="arc3",color="b"))
plt.text(2,0,"y=cos(x)",weight="bold",color="b")
plt.title("y=cos(x)")
plt.show()
这将显示带有图像和辅助线的完整图形。
不知道你这个问题是否已经解决, 如果还没有解决的话: