matplotlib 生成 eps 插入到 tex
matplotlib 生成 eps 插入到 tex
matplotlib 生成 eps,就可以插入到 tex 中,而且是矢量图,放大不失真。
而且因为图中的元素都是嵌入到 pdf 中,所以图中的文字也可以选中及复制。
注意 matplotlib 的 backend 要选择 Agg ,用 TkAgg 作为 backend 只能生成一张空白图片。
testeps.py
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
x=range(100)
y=[i**2 for i in x]
plt.plot(x,y,label='x**2')
plt.legend(frameon=False)
plt.xlabel('x')
plt.ylabel('y')
plt.title('x**2')
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。
搞定中文
#encoding=utf-8
import matplotlib
matplotlib.use('Agg')
import matplotlib.font_manager as fm
myfont = fm.FontProperties(fname='/usr/share/fonts/WinFonts/simhei.ttf')
import matplotlib.pyplot as plt
plt.clf()
x=range(100)
y=[i**2 for i in x]
plt.plot(x,y)
plt.legend([u'x**2图例'],prop=myfont,frameon=False)
plt.xlabel('x')
plt.ylabel('y')
plt.title(u'x**2的图像',fontproperties=myfont)
plt.savefig('testeps_pdf.pdf',format='pdf')
(参考 wesleyhsiung 在 matplotlib图例中文乱码? 下的 回答 )
或
#encoding=utf-8
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号 plt.clf()
x=range(100)
y=[i**2 for i in x]
plt.plot(x,y)
plt.legend([u'x**2图例'],frameon=False)
plt.xlabel('x')
plt.ylabel('y')
plt.title(u'x**2的图像')
plt.savefig('testeps_pdf.pdf',format='pdf')
(参考 python matplotlib 中文显示参数设置 )
生成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 即为透明。
其他
使用 graphviz/dot 语言画图,可方便地画出树、流程图等。
使用 D3.js、Chart.js 等 JavaScript 库画图。见 Javascript chart library。
使用 TikZ、Metapost 等。
使用 draw.io、gliffy、lucidchart、processon 等在线网站。
使用 gephi 等绘制网络。
What GUI applications are there to assist in generating graphics for TeX?
Which open source software is best for network data analysis?
END
2017.08.21 19:35
matplotlib 生成 eps 插入到 tex的更多相关文章
- 生成eps图形
(1) matlab可直接将生成图片保存为eps格式. print -fhandle -rresolution -dfileformat filename 例子:set(gcf,'paperposit ...
- 生成.eps文件方法
生成.eps文件方法 背景: 要写论文了,图像的分辨率是一大痛点 方法一: 两步生成.eps文件 用visio 制作图形,保存为pdf格式: 直接用adobe acrobat 打开pdf,然后保存为. ...
- 快速将一个表的数据生成SQL插入语句
将一个表中的数据生成SQL插入语句,方便系统快速初始化,在数据库中执行创建以下过程就可以了. ) Drop Procedure GenerateData go CREATE PROCEDURE Gen ...
- Springboot接口简单实现生成MySQL插入语句
Springboot接口简单实现调用接口生成MySQL插入语句 在实际测试中,有这样一个需求场景,比如:在性能压力测试中,可能需要我们事先插入数据库中一些相关联的数据. 我们在实际测试中,遇到问题,需 ...
- 生成大量插入语句,并将语句写入txt文件中
import java.io.*; /** * Created by czz on 2019/9/23. */ public class TTest { /** * 生成大量插入语句,并将语句写入tx ...
- 基于爬取百合网的数据,用matplotlib生成图表
爬取百合网的数据链接:http://www.cnblogs.com/YuWeiXiF/p/8439552.html 总共爬了22779条数据.第一次接触matplotlib库,以下代码参考了matpl ...
- Python3+pdfminer+jieba+wordcloud+matplotlib生成词云(以深圳十三五规划纲要为例)
一.各库功能说明 pdfminer----用于读取pdf文件的内容,python3安装pdfminer3k jieba----用于中文分词 wordcloud----用于生成词云 matplotlib ...
- Locust 测试结果通过Matplotlib生成趋势图
目的: 相信大家对于使用Loadrunner测试后的结果分析详细程度还是有比较深刻的感受的,每个请求,每个事务点等都会有各自的趋势指标,在同一张图标中展示.如下图: 而Locust自身提供的chart ...
- python 基于 wordcloud + jieba + matplotlib 生成词云
词云 词云是啥?词云突出一个数据可视化,酷炫.以前以为很复杂,不想python已经有成熟的工具来做词云.而我们要做的就是准备关键词数据,挑一款字体,挑一张模板图片,非常非常无脑.准备好了吗,快跟我一起 ...
随机推荐
- 关于Xcode10的那些事
前言 这里主要介绍一下Xcode10 版本主要更新的内容. 随着iOS12的发布,Xcode10已经可以从Mac App Store下载. Xcode10包含了iOS12.watchOS 5.macO ...
- [LeetCode] 18. 四数之和
题目链接:https://leetcode-cn.com/problems/4sum/ 题目描述: 给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个 ...
- [认证授权] 2.OAuth2授权(续) & JWT(JSON Web Token)
1 RFC6749还有哪些可以完善的? 1.1 撤销Token 在上篇[认证授权] 1.OAuth2授权中介绍到了OAuth2可以帮我们解决第三方Client访问受保护资源的问题,但是只提供了如何获得 ...
- 基于nodejs的流水线式的CRUD服务。依赖注入可以支持插件。
写代码好多年了,发现大家的思路都是写代码.写代码.写代码,还弄了个称号——码农. 我是挺无语的,我的思路是——不写代码.不写代码.不写代码! 无聊的代码为啥要重复写呢?甚至一写写好几年. 举个例子吧, ...
- Linux系统下Mysql安装与配置
一,使用系统 Centos7: 在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB. 二,下载安装 ...
- .netcore 读取ansi编码
public class FileHelper { //根据文件自动觉察编码并输出内容 public static string GetText(string path) { StringBuilde ...
- Asp.Net Core中DI的知识总结
在asp.net core中DI的概念是由这几部分组成的: IServiceCollection,保存IServiceDescriptor实例的列表 IServiceProvider,只有一个方法Ge ...
- linux基本命令2
目录: 目录: /bin:可执行文件 /sbin:系统文件 /dev:设备文件 命令: mkdir test cd test touch 11.txt vi 11.txt cat 11.txt cp ...
- Flask--偏函数, 线程安全, 请求上下文
一 . 偏函数 from functools import partial def func(a, b): return a + b new_func = partial(func, 3, 4) # ...
- Linux学习之路1
root用户 安装初始系统默认没有启动root用户,如下方式启动: l sudo passwd l 连续输入两次密码,启动root用户 l 再登陆 登陆root用户 l su root l ...