前几天给公司设置定时分析任务报告并发送邮件的时候遇到的问题
本地Windows上运行没问题,在服务器上运行一直显示中文是方框
前提是你的服务器要有图形界面,因为不管你是plt.show()还是plt.savefig()都是会调用图形界面的哦
搜索后大多数都说中加入如下代码
但是我加了之后还是各种问题,百思不得其解
找个很多问题都没发现
后来在stackoverflow中看到了一个思路,原文找不到了
大概意思是直接定位到服务器的字体库,需要设置的地方直接引用就行,如下
此时myfont已经是我自己添加的SimHei字体了,然后在需要设置字体的地方引用即可
此时需要注意的点是
在给图添加legend图例时需要设置prop
而在给坐标轴或者标题设置时需要用fontproperties
之后生成的图片就不会再出现烦人的方框了