我想将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下都可以创建清晰的文件吗?
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}