博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
matplotlib 生成 eps 插入到 tex
阅读量:4463 次
发布时间:2019-06-08

本文共 2654 字,大约阅读时间需要 8 分钟。

matplotlib 生成 eps 插入到 tex


 

matplotlib 生成 eps,就可以插入到 tex 中,而且是矢量图,放大不失真。

而且因为图中的元素都是嵌入到 pdf 中,所以图中的文字也可以选中及复制。

注意 matplotlib 的 backend 要选择 Agg ,用 TkAgg 作为 backend 只能生成一张空白图片。

 

testeps.py

1 import matplotlib 2 matplotlib.use('Agg') 3 import matplotlib.pyplot as plt 4 x=range(100) 5 y=[i**2 for i in x] 6 plt.plot(x,y,label='x**2') 7 plt.legend(frameon=False) 8 plt.xlabel('x') 9 plt.ylabel('y')10 plt.title('x**2')11 plt.savefig('testeps.eps',format='eps')

 

testeps.tex

\documentclass[12pt]{article}\usepackage{fontspec}\usepackage{graphicx}\setmainfont{SimHei}\title{x**2}\author{maxuewei}\date{}\begin{document}\maketitle\begin{center}$$y=x^2$$即$$y=x*x$$图像如下\\\end{center}\begin{figure}[htbp]    \centering\includegraphics[width=320pt]{testeps.eps}		%\caption{something}\label{fig:1}\end{figure}\end{document}

 

用xelatex编译,生成pdf。

 

 

搞定中文


 

1 #encoding=utf-8 2 import matplotlib 3 matplotlib.use('Agg') 4 import matplotlib.font_manager as fm 5 myfont = fm.FontProperties(fname='/usr/share/fonts/WinFonts/simhei.ttf') 6 import matplotlib.pyplot as plt 7 plt.clf() 8 x=range(100) 9 y=[i**2 for i in x]10 plt.plot(x,y)11 plt.legend([u'x**2图例'],prop=myfont,frameon=False)12 plt.xlabel('x')13 plt.ylabel('y')14 plt.title(u'x**2的图像',fontproperties=myfont)15 plt.savefig('testeps_pdf.pdf',format='pdf')

(参考  在  下的  )

1 #encoding=utf-8 2 import matplotlib 3 matplotlib.use('Agg') 4 import matplotlib.pyplot as plt 5 plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签 6 plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号 7  8 plt.clf() 9 x=range(100)10 y=[i**2 for i in x]11 plt.plot(x,y)12 plt.legend([u'x**2图例'],frameon=False)13 plt.xlabel('x')14 plt.ylabel('y')15 plt.title(u'x**2的图像')16 plt.savefig('testeps_pdf.pdf',format='pdf')

(参考  )

生成pdf

然后终端运行

pdf2ps testeps_pdf.pdf testeps.eps

将 pdf 转成 eps 

然后就可以像上面一样编译tex了。

不过最终生成的pdf,图像部分的文字无法选中,无法像上面一样可以选中及复制。

 

 

其余图形 


方法 1

使用 MS PowerPoint、WPS、Libre office、xfig、Dia、yEd、Inkscape、LatexDraw、Ipe、TikzEdt 等画图并导出 eps 或 pdf ,然后插入到 tex 。

 

方法如下: 

使用 WPS 或 Libreoffice Draw 或 Libreoffice Impress 画好图之后,导出 pdf,然后使用 pdfcrop 或类似工具对pdf进行裁剪

 pdfcrop --margins "5 5 5 5" ppt.pdf final.pdf 

 

使用 yED 时要注意在 Text Rendering Policy 中选择 Vectorized Text 之外的选项。

 

方法 2

另一种不错的方法是使用 Dia 画图,然后导出 pgf 的 tex 代码,假如导出为 dia_export.tex,在主文档中 \include{dia_export} 就可以了。

 

因为在 Dia 中不支持数学公式,所以可以在用 Dia 画图时先敲入公式,再在导出的 dia_export.tex 中把它对 $ \ 等的转义去掉,再用 LaTex 编译就可以了。

 

如果需要在背景颜色不为白色的 PDF 中插入图的话,画图时可以在『文件-图表属性』下设置背景颜色为灰色,然后对于图中的元素『右键-属性』,设置『填充颜色』、『线条颜色』等,其中有一个『透明度』的选项可以设置为 0 即为透明。

其他


 

使用  语言画图,可方便地画出树、流程图等。

使用 D3.js、Chart.js 等 JavaScript 库画图。见 。

使用 TikZ、Metapost 等。

使用 、、、 等在线网站。

 

使用 gephi 等绘制网络。

 

 

 

 

 

 

END

2017.08.21 19:35

转载于:https://www.cnblogs.com/maxuewei2/p/7406259.html

你可能感兴趣的文章
Log4J日志配置详解
查看>>
NameNode 与 SecondaryNameNode 的工作机制
查看>>
Code obfuscation
查看>>
大厂资深面试官 带你破解Android高级面试
查看>>
node.js系列(实例):原生node.js实现接收前台post请求提交数据
查看>>
SignalR主动通知订阅者示例
查看>>
golang的表格驱动测试
查看>>
用python实现矩阵转置
查看>>
linux 小技巧(磁盘空间搜索)
查看>>
iOS开发——捕获崩溃信息
查看>>
(for 循环)编程找出四位整数 abcd 中满足 (ab+cd)(ab+cd)=abcd 的数
查看>>
tomcat使用spring-loaded实现应用热部署
查看>>
boost1.53中的lock-free
查看>>
链表_leetcode203
查看>>
基于ajax 的 几个例子 session ,ajax 实现登录,验证码 ,实现ajax表单展示
查看>>
连接不上sql server服务器的解决方案
查看>>
记录安装oracle的那些事(二)之双系统安装
查看>>
c3po数据库连接池中取出连接
查看>>
bootstrap-table 分页
查看>>
使用本机IP调试web项目
查看>>