赞
踩
1.字体,图例,轴标签,轴范围,线条样式基本设置.
- import numpy as np
- import matplotlib.pyplot as plt
-
- #绘图的数据,两条关于x的函数
- x = np.linspace(-3, 3)
- y = 2 * x + 1
- z = pow(x, 2)
- plt.rcParams['font.sans-serif'] = 'Times New Roman'#设置字体为新罗马
- plt.figure(figsize=(8, 5))#设置图的大小
-
- #绘制线条:color设置颜色,也可以以十六进制设置,如color='#770077',也可以以RGB设置,如color=(0.4,0.8,0.3);
- #linewidth设置线条宽度;linestyle设置线条样式;label设置线条名称,也可以不设置
- l1, = plt.plot(x, y, color='red', linewidth=2.0, linestyle='--', label='Y data')
- l2, = plt.plot(x, z, label='Z data')
-
- #绘制图例:handles设置需要绘制图例的线条;loc设置图例位置,包括
- '''
- best,upper right,upper left,lower left,lower right,right
- center left,center right,lower center,upper center,center
- '''
- # labels可对线条名称进行更改,fontsize可用于对图例,轴名称,轴标签等字体大小的设置
- plt.legend(handles=[l1, l2], loc='best',labels=['reY data', 'reZ data'],fontsize=16)
-
- #分别设置xy轴的范围
- plt.xlim((-4, 4))
- plt.ylim((-5, 5))
-
- #分别设置xy轴的轴名
- plt.xlabel('x',fontsize=16)
- plt.ylabel('y',fontsize=16)
-
- #分别修改轴标签,可以是数字,也可以是文本
- new_ticks = np.linspace(-4, 4, 5) # -4到4,共五个数
- plt.xticks(new_ticks,fontsize=16)
- plt.yticks([-4, 0, 4], ['low', 'mid', 'high'],fontsize=16) # 对应值替换为文字
-
- plt.show()
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
2.移除边框,移动轴的位置.有时候我们会希望这种情况:
- ax = plt.gca()
- # 将上边框与右边框去掉
- ax.spines['right'].set_color('none')
- ax.spines['top'].set_color('none')
- # 设置底边框为x轴,左边框为y轴
- ax.xaxis.set_ticks_position('bottom')
- ax.yaxis.set_ticks_position('left')
- # 将坐标原点设置在(0,0)
- ax.spines['bottom'].set_position(('data', 0))
- ax.spines['left'].set_position(('data', 0))
需要注意的是,这一步最好放在对轴标签,轴名称设置的前面,否则会导致字体大小无法修改的问题.
3.完整代码及结果:
- import numpy as np
- import matplotlib.pyplot as plt
-
- #绘图的数据,两条关于x的函数
- x = np.linspace(-3, 3)
- y = 2 * x + 1
- z = pow(x, 2)
- plt.rcParams['font.sans-serif'] = 'Times New Roman'#设置字体为新罗马
- plt.figure(figsize=(8, 5))#设置图的大小
-
- #绘制线条:color设置颜色,也可以以十六进制设置,如color='#770077',也可以以RGB设置,如color=(0.4,0.8,0.3);
- #linewidth设置线条宽度;linestyle设置线条样式;label设置线条名称,也可以不设置
- l1, = plt.plot(x, y, color='red', linewidth=2.0, linestyle='--', label='Y data')
- l2, = plt.plot(x, z, label='Z data')
-
- #绘制图例:handles设置需要绘制图例的线条;loc设置图例位置,包括
- '''
- best,upper right,upper left,lower left,lower right,right
- center left,center right,lower center,upper center,center
- '''
- # labels可对线条名称进行更改,fontsize可用于对图例,轴名称,轴标签等字体大小的设置
- plt.legend(handles=[l1, l2], loc='best',labels=['reY data', 'reZ data'],fontsize=16)
-
- ax = plt.gca()
- # 将上边框与右边框去掉
- ax.spines['right'].set_color('none')
- ax.spines['top'].set_color('none')
- # 设置底边框为x轴,左边框为y轴
- ax.xaxis.set_ticks_position('bottom')
- ax.yaxis.set_ticks_position('left')
- # 将坐标原点设置在(1,2)
- ax.spines['bottom'].set_position(('data', 0))
- ax.spines['left'].set_position(('data', 0))
-
- #分别设置xy轴的范围
- plt.xlim((-4, 4))
- plt.ylim((-5, 5))
-
- #分别设置xy轴的轴名
- plt.xlabel('x',fontsize=16)
- plt.ylabel('y',fontsize=16)
-
- #分别修改轴标签,可以是数字,也可以是文本
- new_ticks = np.linspace(-4, 4, 5) # -4到4,共五个数
- plt.xticks(new_ticks,fontsize=16)
- plt.yticks([-4, 0, 4], ['low', 'mid', 'high'],fontsize=16) # 对应值替换为文字
-
- plt.show()
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
4.隐藏轴标签(这里就不演示了,可以自己试试):
- plt.xticks(())
- plt.yticks(())
5.有时候我们会需要对图片进行编号(左图).
- #插入文本:transform = ax.transAxes表示将文本插入的位置转换为以[0,1]的范围
- #0.05, 0.85表示文本的位置
- plt.text(0.05, 0.85, '(a)', fontsize=16, transform = ax.transAxes)
而当我们想把文本插入到某个特殊的位置,如x = 1,y = 2的地方(右图),就需要删掉transform = ax.transAxes
!!同样的fontsize,color 分别可以设置字体大小和颜色!!
plt.text(1, 2, 'x=1,y=2', fontsize=20,color = 'r')
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。