matplotlib 学习笔记(二)

       在matplotlib 学习笔记(一)中记录了如何用matplotlib绘制一副图像,该图像包含(-π,π)区间上正弦函数的曲线和余弦函数的曲线,并进行了添加图题,和改变线型的操作。

       matplotlib 学习笔记(二)中主要是记录对图像中的坐标轴的一系列操作。


       可以看到图中有上下左右四条线,分别为程序中的left,right,top,bottom,现在将top和right隐藏掉,然后将left作为纵轴,bottom作为横纵,具体操作如下:

# 导入包
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-np.pi, np.pi, 256, endpoint=True)  # 设置x轴,-π到π之间,有256个点,endpoint=True表示是否包含最后一个点
c, s = np.cos(x), np.sin(x)  # 定义余弦,正弦函数
plt.figure(1)
plt.plot(x, c, color='blue', linewidth=1.0, linestyle='--', label="Cos", alpha=0.5)
plt.plot(x, s, 'r-.')  # r代表red,-.代表线型
plt.title("cos&sin")  # 添加标题
ax = plt.gca() #设置轴的编辑器
# spines 是四周的边线,none代表隐藏
ax.spines["right"].set_color("none") #隐藏右边的线
ax.spines["top"].set_color("none") #隐藏上方的线
ax.spines["left"].set_position(("data", 0)) # 将纵轴位置设置到数据域的 0 位置
ax.spines["bottom"].set_position(("data", 0))# 将横轴位置设置到数据域的 0
plt.show()  # 显示



       有没有觉得坐标轴上的坐标不那么美观,余弦正弦函数跟π才会更搭嘛!采用plt.xticks来设置横轴显示,plt.yticks来设置纵轴显示,其中

plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$+\pi/2$',r'$+\pi$'])
  这里的两个数组,第一个数组指定横轴需要标示的位置,即在[-np.pi,-np.pi/2,0,np.pi/2,np.pi],这五处进行标示,第二个数组几位在这五个位置上表示的内容;设置纵轴在[-1,1]这个区间中中标5个点,同时我们还可以改变坐标轴上数字的大小,增加图例和网格线的显示,代码和效果展示如下:
# 导入包
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-np.pi, np.pi, 256, endpoint=True)  # 设置x轴,-π到π之间,有256个点,endpoint=True表示是否包含最后一个点
c, s = np.cos(x), np.sin(x)  # 定义余弦,正弦函数
plt.figure(1)
plt.plot(x, c, color='blue', linewidth=1.0, linestyle='--', label="Cos", alpha=0.5)
plt.plot(x, s, 'r-.',label="Sin")  # r代表red,-.代表线型
plt.title("cos&sin")  # 添加标题
ax = plt.gca() #设置轴的编辑器
# spines 是四周的边线,none代表隐藏
ax.spines["right"].set_color("none") #隐藏右边的线
ax.spines["top"].set_color("none") #隐藏上方的线
ax.spines["left"].set_position(("data", 0)) # 将纵轴位置设置到数据域的 0 位置
ax.spines["bottom"].set_position(("data", 0))# 将横轴位置设置到数据域的 0
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$+\pi/2$',r'$+\pi$'])#更改横轴显示内容
plt.yticks(np.linspace(-1,1,5,endpoint=True))
for label in ax.get_xticklabels()+ax.get_yticklabels():
    label.set_fontsize(16)#调整坐标轴上数字大小
    #label.set_bbox(dict(facecolor="black",edgecolor="None",alpha=0.2))#设置包含数字的方块格式,感觉无卵用,加上还丑
plt.legend(loc="upper left") #在左上方显示图例
plt.grid() #画网格线
plt.show()#显示


        最后,可以通过plt.axis([x1,x2,y1,y2]) 设置,使 程序只显示我们想要的那部分,例如 p lt.axis([-1,1,-0.5,1])使程序只显示横坐标在[-1,1],纵坐标在[-0.5,1]的区域的图像。








  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值