weixin_57377772 2023-03-05 19:31 采纳率: 56.3%
浏览 38
已结题

python 使用matplotlib绘制图像

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)")

例图是这样的:

img

  • 写回答

2条回答 默认 最新

  • 陈书予 2023年6月份城市(北京)之星TOP 1 2023-03-05 19:41
    关注

    这是因为在代码中,有多个 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()
    

    这将显示带有图像和辅助线的完整图形。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    1人已打赏
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月13日
  • 已采纳回答 3月5日
  • 创建了问题 3月5日

悬赏问题

  • ¥30 关于#java#的问题,请各位专家解答!
  • ¥30 vue+element根据数据循环生成多个table,如何实现最后一列 平均分 合并
  • ¥20 pcf8563时钟芯片不启振
  • ¥20 pip2.40更新pip2.43时报错
  • ¥15 换yum源但仍然用不了httpd
  • ¥50 C# 使用DEVMOD设置打印机首选项
  • ¥15 麒麟V10 arm安装gdal
  • ¥20 OPENVPN连接问题
  • ¥15 flask实现搜索框访问数据库
  • ¥15 mrk3399刷完安卓11后投屏调试只能显示一个设备