python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > 使用matplotlib画出的图放到word中

python使用matplotlib画出的图怎样放到word中

作者:享邑庆啊

这篇文章主要介绍了python使用matplotlib画出的图怎样放到word中问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

使用matplotlib画出的图放到word中

论文中使用的图一般为两种格式:矢量格式(.wmf,.emf,.eps),位图格式(.bmp,.jpj,.png,.tif)

注:eps,pdf 属于adobe公司,visio, emf为微软产品,两家存在竞争不能直接以另存为的方式转化

矢量格式的图放大后不会模糊,所以这里主要介绍如何使用矢量格式(emf)的图片

首先在python中先把图画出来

import matplotlib.pyplot as plt
Accuracy_list = [1,2,3,4,5,6,7,8,9,10]
f1_list = [1,2,3,4,5,6,7,8,9,10]
x1 = range(0,10)
x2 = range(0,10)
y1 = Accuracy_list
y2 = f1_list
plt.plot(x1, y1, 'o-',c= 'blue') #画出来的是圆圈
plt.title('accuracy vs. epoches')
plt.ylabel('accuracy')
plt.legend([1,2],loc='upper left')   
plt.show()
plt.savefig("accuracy_loss.pdf")

在命令行中执行这个程序(在程序中没有emf格式的,只能保存为eps后转化为emf)

得到图后点击保存,按下图方法保存为.eps的格式

因为word中不能直接打开eps格式的文件,所以将eps转化为emf

在线转化地址:https://cloudconvert.com/eps-to-emf

保存后可以直接放在word中。

但是这个时候,图形可能被压缩了,但是放大后还是清晰的,只有线条有很多锯齿状

我的解决办法是在word中插入一个visio对象,打开visio拖入emf图,保存就好。如果没有visio就只能看着那些锯齿状了。

下边是使用visio和没有使用的对比图

matplotlib图片复制到Word的几种方法

1.savefig()方法支持存储为eps格式的矢量图;还可以保存为svg格式,再用其它工具转换为emf;如果只需要一般的清晰度,也可以在保存png格式时设定dpi参数。

fig.savefig(‘test.png',dpi=600)
fig.savefig(‘test.svg')

svg格式,可以用Visio打开,然后复制到Word中;

还有一种方法,就是把SVG图形转换成emf格式。

脚本:

@echo off
for %%i in (*.svg) do (
echo %%i
inkscape -f %%i -M %%~ni.emf
inkscape -f %%i -A %%~ni.pdf
)
@echo Finished

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文