PDF Python сюжет размыт - интерполяция изображения? - PullRequest
0 голосов
/ 18 января 2019

Я хочу включить сгенерированный Python график PDF в Overleaf Латексный документ. Однако изображение выглядит размытым. Минимальный пример ниже. Я генерирую два графика с imshow, один с interpolation='none', один с interpolation='nearest'. Используются версии Python 2.7.15 и matplotlib 2.2.3.

Использование pdf-viewer evince 3.20.2 , imshow_none.pdf имеет идеально четкие пиксели, в то время как imshow_nearest.pdf показывает размытые края пикселей, а также размеры пикселей могут отличаться. Во встроенном просмотрщике PDF в Overleaf в Firefox 52.5.0 все наоборот, с размытостью хуже. При загрузке скомпилированного PDF из Overleaf, ситуация такая же, как при просмотре файлов в 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}
...