Matplotlib中绘图产生的Type3不兼容怎么办

Admin 2022-07-01 群英技术资讯 425 次浏览

这篇文章主要介绍“Matplotlib中绘图产生的Type3不兼容怎么办”,有一些人在Matplotlib中绘图产生的Type3不兼容怎么办的问题上存在疑惑,接下来小编就给大家来介绍一下相关的内容,希望对大家解答有帮助,有这个方面学习需要的朋友就继续往下看吧。



python matplotlib画图产生的Type 3 fonts字体不兼容

更改措施:

使用Type 42字体来生成PostScript 和PDF 文件。

import matplotlib
matplotlib.rcParams['pdf.fonttype'] = 42
matplotlib.rcParams['ps.fonttype'] = 42

补充:Type 3字体的解决办法

这个问题困扰了我一天了,成功解决,这种感觉太爽了。

提交MNRAS的pdf文件可能会因为含有type3字体而无法在线生成proof。

如遇此种情况,可先如下确认

pdffonts paper.pdf

看输出是否含有type3字体

如果是,则先考虑官方的建议,在文件头部加入:

\usepackage[T1]{fontenc}
\usepackage{aecompl}

重新编译

问题依旧的话,应该是插图中含有type3字体。比如用python画图,默认的似乎就是输出成type3. 修改

~/.matplotlib/matplotlibrc

加入(或者修改)如下两行

ps.fonttype : 42 # Output Type 3 (Type3) or Type 42 (TrueType)
pdf.fonttype : 42 # Output Type 3 (Type3) or Type 42 (TrueType)

重新画图

另一种解决方式是,将问题图片(如果是eps格式)用eps2eps转换一遍。但转换之后的图片中的字体被像素化了,放大时不清晰,不推荐。

还有一个方法效果好一些:先转成pdf再转回eps, 比如对fig.eps,

epstopdf fig.eps fig.pdf
pdftops -eps -r 400 fig.pdf fig.eps

补充:python3 PIL使用font字体错误:OSError: cannot open resource问题解决

错误日志

>>> from PIL import ImageFont
>>> ImageFont.truetype
<function truetype at 0x0000021178B82B70>
>>> ImageFont.truetype("NotoSansCJK-Regular.ttc", 30)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "D:\Users\52489\Anaconda3\lib\site-packages\PIL\ImageFont.py", line 261, in truetype
    return FreeTypeFont(font, size, index, encoding, layout_engine)
  File "D:\Users\52489\Anaconda3\lib\site-packages\PIL\ImageFont.py", line 144, in __init__
    self.font = core.getfont(font, size, index, encoding, layout_engine=layout_engine)
OSError: cannot open resource

解决方法

缺少对应字体文件: NotoSansCJK-Regular.ttc

在网上找到对应的font文件

以我的Ubuntu 16为例, 字体文件在"/usr/share/fonts/truetype"中,

因此,把下载到的ttc文件放到 /usr/share/fonts/truetype 文件夹当中.

重新启动python环境,即可正常导入.


以上就是关于“Matplotlib中绘图产生的Type3不兼容怎么办”的相关知识,感谢各位的阅读,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注群英网络,小编每天都会为大家更新不同的知识。
群英智防CDN,智能加速解决方案

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

猜你喜欢

成为群英会员,开启智能安全云计算之旅

立即注册
专业资深工程师驻守
7X24小时快速响应
一站式无忧技术支持
免费备案服务
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
在线客服
微信公众号
返回顶部
返回顶部 返回顶部
在线客服
在线客服