当前位置:   article > 正文

Python科研绘图入门【超详细】:一

python科研绘图

1.字体,图例,轴标签,轴范围,线条样式基本设置.

  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. #绘图的数据,两条关于x的函数
  4. x = np.linspace(-3, 3)
  5. y = 2 * x + 1
  6. z = pow(x, 2)
  7. plt.rcParams['font.sans-serif'] = 'Times New Roman'#设置字体为新罗马
  8. plt.figure(figsize=(8, 5))#设置图的大小
  9. #绘制线条:color设置颜色,也可以以十六进制设置,如color='#770077',也可以以RGB设置,如color=(0.4,0.8,0.3);
  10. #linewidth设置线条宽度;linestyle设置线条样式;label设置线条名称,也可以不设置
  11. l1, = plt.plot(x, y, color='red', linewidth=2.0, linestyle='--', label='Y data')
  12. l2, = plt.plot(x, z, label='Z data')
  13. #绘制图例:handles设置需要绘制图例的线条;loc设置图例位置,包括
  14. '''
  15. best,upper right,upper left,lower left,lower right,right
  16. center left,center right,lower center,upper center,center
  17. '''
  18. # labels可对线条名称进行更改,fontsize可用于对图例,轴名称,轴标签等字体大小的设置
  19. plt.legend(handles=[l1, l2], loc='best',labels=['reY data', 'reZ data'],fontsize=16)
  20. #分别设置xy轴的范围
  21. plt.xlim((-4, 4))
  22. plt.ylim((-5, 5))
  23. #分别设置xy轴的轴名
  24. plt.xlabel('x',fontsize=16)
  25. plt.ylabel('y',fontsize=16)
  26. #分别修改轴标签,可以是数字,也可以是文本
  27. new_ticks = np.linspace(-4, 4, 5) # -4到4,共五个数
  28. plt.xticks(new_ticks,fontsize=16)
  29. plt.yticks([-4, 0, 4], ['low', 'mid', 'high'],fontsize=16) # 对应值替换为文字
  30. plt.show()

 

2.移除边框,移动轴的位置.有时候我们会希望这种情况:

  1. ax = plt.gca()
  2. # 将上边框与右边框去掉
  3. ax.spines['right'].set_color('none')
  4. ax.spines['top'].set_color('none')
  5. # 设置底边框为x轴,左边框为y轴
  6. ax.xaxis.set_ticks_position('bottom')
  7. ax.yaxis.set_ticks_position('left')
  8. # 将坐标原点设置在(0,0)
  9. ax.spines['bottom'].set_position(('data', 0))
  10. ax.spines['left'].set_position(('data', 0))

需要注意的是,这一步最好放在对轴标签,轴名称设置的前面,否则会导致字体大小无法修改的问题.

3.完整代码及结果:

  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. #绘图的数据,两条关于x的函数
  4. x = np.linspace(-3, 3)
  5. y = 2 * x + 1
  6. z = pow(x, 2)
  7. plt.rcParams['font.sans-serif'] = 'Times New Roman'#设置字体为新罗马
  8. plt.figure(figsize=(8, 5))#设置图的大小
  9. #绘制线条:color设置颜色,也可以以十六进制设置,如color='#770077',也可以以RGB设置,如color=(0.4,0.8,0.3);
  10. #linewidth设置线条宽度;linestyle设置线条样式;label设置线条名称,也可以不设置
  11. l1, = plt.plot(x, y, color='red', linewidth=2.0, linestyle='--', label='Y data')
  12. l2, = plt.plot(x, z, label='Z data')
  13. #绘制图例:handles设置需要绘制图例的线条;loc设置图例位置,包括
  14. '''
  15. best,upper right,upper left,lower left,lower right,right
  16. center left,center right,lower center,upper center,center
  17. '''
  18. # labels可对线条名称进行更改,fontsize可用于对图例,轴名称,轴标签等字体大小的设置
  19. plt.legend(handles=[l1, l2], loc='best',labels=['reY data', 'reZ data'],fontsize=16)
  20. ax = plt.gca()
  21. # 将上边框与右边框去掉
  22. ax.spines['right'].set_color('none')
  23. ax.spines['top'].set_color('none')
  24. # 设置底边框为x轴,左边框为y轴
  25. ax.xaxis.set_ticks_position('bottom')
  26. ax.yaxis.set_ticks_position('left')
  27. # 将坐标原点设置在(1,2)
  28. ax.spines['bottom'].set_position(('data', 0))
  29. ax.spines['left'].set_position(('data', 0))
  30. #分别设置xy轴的范围
  31. plt.xlim((-4, 4))
  32. plt.ylim((-5, 5))
  33. #分别设置xy轴的轴名
  34. plt.xlabel('x',fontsize=16)
  35. plt.ylabel('y',fontsize=16)
  36. #分别修改轴标签,可以是数字,也可以是文本
  37. new_ticks = np.linspace(-4, 4, 5) # -4到4,共五个数
  38. plt.xticks(new_ticks,fontsize=16)
  39. plt.yticks([-4, 0, 4], ['low', 'mid', 'high'],fontsize=16) # 对应值替换为文字
  40. plt.show()

 4.隐藏轴标签(这里就不演示了,可以自己试试):

  1. plt.xticks(())
  2. plt.yticks(())

5.有时候我们会需要对图片进行编号(左图).

 

  1. #插入文本:transform = ax.transAxes表示将文本插入的位置转换为以[0,1]的范围
  2. #0.05, 0.85表示文本的位置
  3. 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')

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/276611
推荐阅读
相关标签
  

闽ICP备14008679号