PDF python绘图模糊-图像插值?

时间:2019-01-18 08:53:01

标签: python pdf matplotlib latex interpolation

我想将python生成的pdf图包含到 Overleaf Latex文档中。但是,图像显得模糊。下面是一个最小的示例。我用imshow生成了两个图,一个用interpolation='none',一个用interpolation='nearest'。使用的版本是 Python 2.7.15 matplotlib 2.2.3

使用pdf查看器 evince 3.20.2 imshow_none.pdf 的像素非常清晰,而imshow_nearest.pdf显示的像素边缘模糊,像素大小也可能不同。在 Firefox 52.5.0 下的Overleaf内置pdf查看器中,一切都相反,而模糊的情况更糟。从Overleaf下载编译的pdf时,情况与在evince下查看文件时相同。 Png屏幕截图和背面乳胶文件位于下面。

我不是插值专家。 pdf查看器是否使用matplotlib插值参数或他们自己的插值方法?一旦模糊图像是 imshow_none.pdf ,一旦 imshow_nearest.pdf 怎么办?插值方法是否以某种方式存储在pdf中?在标签中?如何读取此信息?在evince和Overleaf下都可以创建清晰的文件吗?

Evince: imshow, interpolation='none'
Evince: imshow, interpolation='nearest' Overleaf: imshow, interpolation='nearest' Overleaf: imshow, interpolation='none'

Python代码:

import numpy as np
import matplotlib
import matplotlib.pyplot as plt

print sys.version
print matplotlib.__version__

np.random.seed(100)
a = np.random.rand(100,50)

plt.imshow(a, cmap='binary', aspect='auto', interpolation='none', origin='lower')
plt.title('imshow, interpolation: none')
plt.savefig('/home/proxauf/test_pdf_plot_interpolation/imshow_none.pdf')
plt.close()

plt.imshow(a, cmap='binary', aspect='auto', interpolation='nearest', origin='lower')
plt.title('imshow, interpolation: nearest')
plt.savefig('/home/proxauf/test_pdf_plot_interpolation/imshow_nearest.pdf')
plt.close()

乳胶代码:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{float}

\begin{document}

\begin{figure}[H]
\centering
\includegraphics{imshow_none.pdf}
\end{figure}

\begin{figure}[H]
\centering
\includegraphics{imshow_nearest.pdf}
\end{figure}

\end{document}

0 个答案:

没有答案