futurechao的个人空间 https://blog.eetop.cn/1227585 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

Python科学计算技巧积累七——绘图的一些细节问题

已有 4361 次阅读| 2015-10-8 01:09 |个人分类:编程语言

写这个日志的主要原因是自己使用Python这段时间以来,通过参考官方文档以及阅读别人的代码,发现了自己经常出现的小错误,同时也学到了别人的一些技巧。由于Python科学计算是个开源项目,众多的计算包往往都会集成在一个运行环境中,良莠不齐,而且即使是同一个函数包,各人的使用习惯也不一样,所以没有统一的使用方法。因为没有权威,所以也无所谓对错,只能根据自己的使用习惯不断改进。所以总结一些自己常用的命令,以方便以后参考。

关于import matplotlib.pyplot as plt这条命令,我一直误以为是matplotlib.pylab,直到在网上看了别人的用法,心生疑惑,才去官方的document上查看了一下。matplotlib的官网上这样写道:

Matplotlib is the whole package; matplotlib.pyplot is a module in matplotlib; and pylab is a module that gets installed alongside matplotlib.

"pylab is a convenience module that bulk imports matplotlib.pyplot (for plotting) and numpy (for mathematics and working with arrays) in a single name space. Although many examples use pylab, it is no longer recommended."

Pylab同时导入matplotlib.pyplot和numpy两个函数包,是一种简洁方式,但已经不被推荐使用。所以正确的方法还是分开导入两个函数包。之前迟迟不能发现这个错误的原因,是因为使用错误的方法也能得到正确的结果,所以被蒙蔽了。

正确方法如下
import matplotlib.pyplot as plt

另外要再次将绘图是调整图画大小和字体大小的命令总结一下。同样是字体大小,label, tick,legend用的命令全不相同。而控制字体对于在文献中占线的图片质量至关重要,所以不得不重视。

fig1 = plt.figure(figsize=(3.2, 2.8))  # 图片大小, 3.2'' 长, 2.8'' 高。这个大小适用于大多数分栏论文稿件。


plt.rc('xtick', labelsize = 9)

plt.rc('ytick', labelsize = 9)  # 控制横坐标和纵坐标tick的大小, 我一般取9号。注意这里用的是labelsize。


plt.xlabel('XXXXX', fontsize = 10)   # 横坐标字体大小

plt.ylabel('XXXXXX', fontsize = 10)  # 纵坐标字体大小

plt.title('XXXXX', fontsize = 10)  # 标题字体大小。 注意这里用的是 fontsize.


plt.legend(loc = 'best',fontsize = 'x-small')  # 调整legend的位置和字体大小,字体大小除了可以用数字外,还可以用预设的值 'small', 'x-small', 'xx-small'等值。


总结一下,figure用figsize, tick用labelsize, 其它文字用fontsize。



点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 2

    粉丝
  • 0

    好友
  • 5

    获赞
  • 9

    评论
  • 553

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-17 02:22 , Processed in 0.015495 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部