matplotlib生成的PDF无法在acrobat reader中查看

2023-12-10

我正在使用 matplotlib 绘制数据,包括 LaTeX 字体。创建的 pdf 可以通过 evince、inkscape、GIMP 显示,但不能通过 acroread resp 显示。土坯阅读器。代码原型适用于很多图形,只有少数绘图存在此问题。

...
fig = plt.figure(figsize=(10, 6))
ax = fig.add_subplot(111)
savedpi = 250
fileformat = 'pdf'
... 
p12,=ax.plot(plimit12-binSize/2.0, mean12, '-', lw=2)
ax.set_yscale('log')
ax.yaxis.set_major_formatter(matplotlib.ticker.ScalarFormatter())
ax.legend([p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12], [ "C01", "C02", "C03",  "C04", "C05", "C06", "C07", "C08", "C09", "C10", "C11", "C12"],numpoints=1, loc=1, ncol=3) 
plt.savefig(savepath+'veloDisp'+'.pdf',dpi=None,format=fileformat)

这些有问题的文件之一可以在以下位置找到http://ubuntuone.com/0kuZIKYeZQyGckE5jonPy6

有人遇到过这样的问题吗?

编辑:谢谢 William Denman,实际上打开并打印成 pdf 作品,现在也可以在 acroread 中查看。有趣的是,其他使用 LaTeX 字体的绘图从一开始就可以工作。我没有收到任何错误消息,从中我可以猜测问题出在哪里,这就是我首先在这里问的原因。目前你的解决办法很好,谢谢。但是我真的很想知道如何避免这种情况。由于这些图应该成为出版物的一部分,因此我还必须考虑那些使用 Adob​​e pdf 查看器的人。

编辑:按照建议,我在 MPL 开发人员邮件列表上打开了一个线程,请参阅http://matplotlib.1069221.n5.nabble.com/PDF-not-read-by-Adobe-PDF-readers-td42580.html

编辑:由 matplotlib 开发人员解决!问题出在线路上

ax.axvline(x=1, c='#000000', lw='2', alpha=0.5) 

其中包含一个字符串作为线宽。应该

ax.axvline(x=1, c='#000000', lw=2, alpha=0.5)

不幸的是,标准 pdf 后端还没有对此发出警告。


在追踪我自己在 matplotlib 中的错误之后,我根据这篇文章和 OP 在 matplotlib 网站上所做的推荐发现,可以使用 cairo 来追踪 matplotlib 中的错误。pip install cairo。然后在所有其他 MPL 导入之上添加:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import ...

import matplotlib
matplotlib.use("cairo")

from matplotlib.backends.backend_pdf import PdfPages
..etc.

否则追逐将会失败,因为后端已经设置并加载......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

matplotlib生成的PDF无法在acrobat reader中查看 的相关文章

  • 如何在python 3.7中生成条形码

    我正在使用 python 3 7 为了生成条形码 我尝试使用安装 pyBarcode 库pip install pyBarcode 但它显示以下错误 找不到满足 pyBarcode 要求的版本 来自版本 找不到 pyBarcode 的匹配分
  • Sublime Text 插件开发中的全局 Python 包

    一 总结 我不知道 Sublime Text 插件开发人员如何使用 Sublime Text 查找全局 Python 包 而不是 Sublime Text 目录的 Python 包 Sublime Text使用自己的Python环境 而不是
  • Python - 来自 .进口

    我第一次尝试图书馆 我注意到解决图书馆内导入问题的最简单方法是使用如下结构 from import x from some module import y 我觉得这件事有些 糟糕 也许只是因为我不记得经常看到它 尽管公平地说我还没有深入研究
  • 保留完整姓氏,在 pandas 列中获取名字的首字母(如果有的话,还有中间名)

    我有一个 pandas 数据框 其中有一列表示几位网球运动员的姓氏和姓名 如下所示 Player 0 Roddick Andy 1 Federer Roger 2 Tsonga Jo Wilfred 我想保留完整的姓氏并获取姓名的首字母和中
  • 如果未引发异常,则通过 Python 单元测试

    在Python中unittest框架 是否有一种方法可以在未引发异常的情况下通过单元测试 否则会因 AssertRaise 而失败 如果我正确理解你的问题 你could做这样的事情 def test does not raise on va
  • Pandas:如果单元格包含特定文本则删除行

    pandas 中的这段代码不起作用 如果该列包含提供的任何文本 数字 我希望它删除该行 目前 我只能在单元格与我的代码中传递的确切文本匹配时才能使其工作 因为它只删除显示 Fin 的单元格不是金融或金融 df2 df df Team Fin
  • 在没有模型的情况下将自定义页面添加到 django admin

    我正在尝试在没有模型关联的情况下向管理员添加自定义页面 这就是我迄今为止所取得的成就 class MyCustomAdmin AdminSite def get urls self from django conf urls import
  • 如何在 Python 中加密并在 Java 中解密?

    我正在尝试在 Python 程序中加密一些数据并将其保存 然后在 Java 程序中解密该数据 在Python中 我像这样加密它 from Crypto Cipher import AES KEY 1234567890123456789012
  • 没有名为 StringIO 的模块

    我有Python 3 6 我想从另一个名为 run py 的 python 文件执行名为 operation py 的 python 文件 In operation py I do from cStringIO import StringI
  • Django send_mail SMTPSenderRefused 530 与 gmail

    一段时间以来 我一直在尝试使用 Django 从我正在开发的网站接收电子邮件 现在 我还没有部署它 并且我正在使用Django开发服务器 我不知道这是否会影响它 这是我的 settings py 配置 EMAIL BACKEND djang
  • pytest:同一接口的不同实现的可重用测试

    想象一下我已经实现了一个名为的实用程序 可能是一个类 Bar在一个模块中foo 并为其编写了以下测试 测试 foo py from foo import Bar as Implementation from pytest import ma
  • SMTP_SSL SSLError: [SSL: UNKNOWN_PROTOCOL] 未知协议 (_ssl.c:590)

    此问题与 smtplib 的 SMTP SSL 连接有关 当与 SMTP 无 ssl 连接时 它正在工作 在 SMTP SSL 中尝试相同的主机和端口时 出现错误 该错误仅基于主机 gmail 设置也工作正常 请检查下面的示例 如果 Out
  • 使用“默认”环境变量启动新的子进程

    我正在编写一个构建脚本来解析依赖的共享库 及其共享库等 这些共享库在正常情况下是不存在的PATH环境变量 为了使构建过程正常工作 让编译器找到这些库 PATH已更改为包含这些库的目录 构建过程是这样的 加载器脚本 更改 PATH gt 基于
  • Mac OSX 10.6 上的 Python mysqldb 不工作

    我正在使用 Python 2 7 并尝试让 Django 项目在 MySQL 后端运行 我已经下载了 mysqldb 并按照此处的指南进行操作 http cd34 com blog programming python mysql pyth
  • Elasticsearch 通过搜索返回拼音标记

    我用语音分析插件 https www elastic co guide en elasticsearch plugins current analysis phonetic html由于语音转换 从弹性搜索中进行一些字符串匹配 我的问题是
  • 如何与其他用户一起使用 pyenv?

    如何与其他用户一起使用 pyenv 例如 如果我在用户 test 的环境中安装了 pyenv 则当我以 test 身份登录时可以使用 pyenv 但是 当我以其他用户 例如 root 身份登录时如何使用 pyenv 即使你这么做了 我也会s
  • 是否可以使用 MS Visual Studio 作为 LaTeX 用户的 IDE?

    我是 Microsoft Visual Studio 的忠实粉丝 我喜欢代码折叠 自动完成 自动格式化等等 我想如果我能将 MS Visual Studio 用作 LaTeX 用户的 IDE 就好了 简而言之 可能吗 对于第一步 我认为让我
  • Django 与谷歌图表

    我试图让谷歌图表显示在我的页面上 但我不知道如何将值从 django 视图传递到 javascript 以便我可以绘制图表 姜戈代码 array Year Sales Expenses 2004 1000 400 2005 1170 460
  • 从 pandas DataFrame 中删除少于 K 个连续 NaN

    我正在处理时间序列数据 我在从数据帧列中删除小于或等于阈值的连续 NaN 时遇到问题 我尝试查看一些链接 例如 标识连续 NaN 出现的位置以及计数 Pandas NaN 孔的游程长度 https stackoverflow com que
  • Apache Beam Pipeline 写表后查询表

    我有一个 Apache Beam Dataflow 管道 它将结果写入 BigQuery 表 然后我想查询该表以获取管道的单独部分 但是 我似乎无法弄清楚如何正确设置此管道依赖性 我编写的新表 然后想要查询 与一个单独的表连接以进行某些过滤

随机推荐

  • 在 Form_Load 中使用 AnimateWindow()

    我有一个无边框窗体 我使用 AnimateWindow 方法来创建用于打开 关闭窗体等的动画 我使用这段代码 Flags enum AnimateWindowFlags AW HOR POSITIVE 0x0000000 AW HOR NE
  • 单独的 Dll 中的信号器集线器

    我有一个托管在控制台应用程序中的集线器 并有一个 WPF 应用程序连接到它 效果很好 然后 我将集线器移至一个单独的项目中 并将主机的引用添加到新项目中 现在我收到 500 错误 没有其他详细信息 为了从另一个汇编 命名空间托管集线器 是否
  • AWS API Gateway WebSocket:集成后端中缺少转换后请求的请求模板正文

    我正在 AWS 上构建我的应用程序 我的应用程序使用 websocket 如下所示 前端 WebSocket 客户端 gt AWS API Gateway Websocket API gt EC2 实例中的后端 现在 为了让我的后端 Exp
  • 编写一个在nodejs和requirejs中都可以工作的模块

    我编写了一个目前在 Node 应用程序中工作的小型解析器 但想知道是否有一种方法可以制作一个既可以在 NodeJS 应用程序中也可以在使用 requirejs 的客户端应用程序中工作的模块 path to lib index js func
  • Android中如何获取已安装SD卡的实际大小?

    我正在尝试找到一种方法来查找手机上安装的 SD 卡的总大小和可用空间 根据我对 SOF 的研究和 Android 开发网站 我能够找到 getExternalStorageDirectory 方法 但根据安卓API这将返回一个不一定是外部的
  • SMJobBless 给出错误 CFErrorDomainLaunchd Code=8

    我正在尝试通过 SMJobBless 安装辅助工具 但收到以下错误 错误域 CFErrorDomainLaunchd代码 8 操作无法完成 CFErrorDomainLaunchd错误8 我验证了代码签名 应用程序的 plist 和辅助工具
  • 创建唯一的图像名称

    为我的用户上传的图像创建唯一名称的好方法是什么 我不想有任何重复项 所以像 MD5 filename 这样的东西不适合 有任何想法吗 正如所提到的 我认为创建唯一文件名的最佳方法是简单地添加 time 那就像 image name time
  • 如何让div在页面上垂直居中? [复制]

    这个问题在这里已经有答案了 如何使 box div 在页面上垂直居中居中 我尝试了垂直对齐 中间 但它不起作用 您可以实时查看该网站here 这是CSS iframe position fixed width 100vw height 10
  • 迁移到 Git LFS 和跟踪文件时的命令顺序

    我想将 LFS 用于现有的 Git 存储库并跟踪 foo文件 也转换历史文件 我想我可以这样做 git lfs track foo changed gitattributes and all foo files commit a m Sta
  • Angular 5 HttpClient 发布原始二进制数据

    我的 Web 应用程序需要通过 ProtoBuf 与我的服务器通信 为了实现这一点 我需要能够发布原始二进制数据 这是我现在正在使用的代码 这样做的问题是HttpClient将 Uint8Array 编码为 JSON 数组 因此结果不再是有
  • 监听tomcat领域认证事件

    我需要知道 tomcat 何时接受使用给定上下文的领域身份验证的登录 我一直在查看可能的可用侦听器 ServletContextListener 和 ServletContextAttributeListener 但不知道如何在登录发生时收
  • 使用后台任务设置剪贴板内容 [Windows 10] [UWP]

    我正在开发通用 Windows 10 应用程序 目前 我有一个后台任务 一旦用户收到通知就会触发该任务 该BG任务的目的是复制通知的内容 问题在于 Clipboard setcontent 方法似乎是单线程的 而不是多线程 BG 任务 我尝
  • MultipartFile / blob 保存在数据库中时出现问题

    你好 我想上传图像并将其存储到数据库中 我使用 spring mvc 和 hibernate 这是模型 import java sql Blob import java util Date import javax persistence
  • 将日期转换为月份和年份

    如何使用 python 从以下日期获取月份和年份 日期是 2011 07 01 09 26 11 This showud display as This month 2011 06 07 09 26 11 This should displ
  • Matlab,创建额外向量的替代方法?

    如果我有这个 我会收到错误 sum vector cumsum vector length vector gt gt Error indexing must appear last in an index expression 我知道我可以
  • 如何将 Bootstrap 的容器 div 调整为距左视口边缘 100px?

    我正在使用 Twitter Bootstrap 固定布局 其中容器div has margin left auto margin right auto 所以它始终位于中心 我想要做的是定位容器 以便浏览器窗口左边框和容器之间有 100px
  • UNNEST(hit.eCommerceAction),Google Bigquery

    我使用相同的逻辑来取消嵌套 hit eCommerceAction 但它不能像其他字段一样工作 对这个问题有帮助吗 另外 max if 函数是用于获取两个 hit customeDimenison value 的正确函数吗 SELECT D
  • 如何使用 summarise_each 计算加权平均值?

    如何使用 dplyr 中的 summarise each 计算数据集中所有字段的加权平均值 例如 假设我们想要将mtcars数据集由cyl并计算所有列的加权平均值 其中权重被视为gear柱子 我已经尝试过以下方法 但无法使其工作 mtcar
  • PHP 在 77FCAFF8 处遇到访问冲突

    我正在运行一个也使用 Ajax 和 jQuery 的 PHP 网站 该网站将正常运行相当长的一段时间 突然我的页面 和 ajax 检索的子页面 返回消息 PHP 在 77FCAFF8 处遇到访问冲突 看来重新启动服务器可以解决该问题 运行
  • matplotlib生成的PDF无法在acrobat reader中查看

    我正在使用 matplotlib 绘制数据 包括 LaTeX 字体 创建的 pdf 可以通过 evince inkscape GIMP 显示 但不能通过 acroread resp 显示 土坯阅读器 代码原型适用于很多图形 只有少数绘图存在