matplotlib与visio联合应用:半透明函数图和矢量图形格式
最近我需要发表论文,想要使用矢量图更清晰。visio确实可以画很好的流程图,我使用emf格式之后,放到word之中,即使变成pdf也不会有失真。
但是我现在有一个需求,需要画函数图。然而visio之中没有这样的功能,因此,我打算从matplotlib之中画好,然后拿到visio之中。
这时格式后缀就是很重要的。
https://blog.csdn.net/weixin_40525909/article/details/106903251
从上边这位老兄的做法来看,是使用svg这个格式,然而实际情况下,svg格式会使得visio中图片的大小无法拉伸。
那么有没有其他可以用的格式呢?使用plt.savefig然后输入不支持的一个格式,比如emf,可以得到给出的报错信息:
ValueError: Format 'emf' is not supported (supported formats: eps, jpeg, jpg, pdf, pgf, png, ps, raw, rgba, svg, svgz, tif, tiff)
然后从visio的读取图片中得到支持的格式有
因此,使用tif,存储之后,可以成功拉伸。
其中,涉及到的透明背景,和去除横纵坐标,代码是
fig = plt.figure(facecolor='none')
和
plt.axis('off')
所有画图的代码如下。
# -*- coding:utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0,10,1000)
y = np.e ** x
fig = plt.figure(facecolor='none')
plt.plot(x,y)
plt.axis('off')
path = r"E:\ex.tif"
plt.savefig(path)
plt.show()
------------------------------------
tif不是矢量,我后来就把svg在python那里调整的大小,然后visio存储的时候必须是emz,如果是emf的话加入的svg就成马赛克了。
版权声明:本文为YNNAD1997原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。