zoukankan      html  css  js  c++  java
  • Matplotlib简介和pyplot的简单使用——输出eps格式图像

    最开始使用Matplotlib,一是因为它不需要像Matlab一样花很长时间启动一个图形界面,二是它可以直接保存为.eps格式。
    在图像显示出来之后,在左下角有几个按钮,最后一个就是保存,在保存的对话框选择.eps格式即可。另一种方式就是在程序里面使用pyplot.savefig(name,format="eps"),可以用format指定格式为eps,也可以不使用format,而是写在name里面,它会自动从name里面找到扩展名来决定格式。
    虽然这样得到了.eps格式的图像,但是它的周围有空白的地方,有两种方法来去掉这些空白,一种方法是使用gsview,在windows上,一般会使用这个工具,另一种方法是使用epstool(http://pages.cs.wisc.edu/~ghost/gsview/epstool.htm),我使用的代码是

    print target
    tp0 = "tp0" + target
    tp1 = "tp1" + target
    plt.savefig(tp0,dpi=160)
    cmd0 = "epstool -b -t4 --output %s %s" %(tp1,tp0)
    cmd1 = "epstool -p --output %s %s" %(target,tp1)
    cmd2 = "rm tp*"
    os.system(cmd0)
    os.system(cmd1)
    os.system(cmd2)

    一般情况下,输出的eps文件都可以用的,但有时候却会出现问题,比如在latex编译得到的pdf文件里图像只有一部分,或者全是空白等,这主要问题是eps格式里面的boudningbox有负值,这是一个比较麻烦的问题,目前还没有找到好的解决办法,虽然epstool说是可以调整,重新计算boundingbox,但是依然会有负值,暂时的解决办法就是将图片缩小,比如以前是figsize=(16,8),缩小为figsize=(9,4.5)。目前测试的结果就是宽度超过10,boundingbox就会出现负值,而比9大一点还是可以的,一般取9就可以了,缩小的时候,字体也要相应缩小,不然使用默认字体,就出出现字相对图像太大的情况。
    之前提到了,可以设置fig的boundingbox,但没有深入研究,有兴趣的可以继续探讨。

    至此,对Matplotlib的介绍就结束了,以后或许会用到新的东西,到时候在进行介绍。

  • 相关阅读:
    Java日志框架Slf4j+Log4j入门
    Pandas常用函数入门
    Noip2018 倒计时
    【缩点】洛谷P3387
    用Visio进行数据库建模、设计和实现
    SQL Server 教程
    MS TransactSQL 存储过程的解密算法
    泛型编程
    网络实现语音
    Visual C++ 例程下载
  • 原文地址:https://www.cnblogs.com/Frandy/p/python_pyplot_eps.html
Copyright © 2011-2022 走看看