Сохранение изображений на питоне с очень высоким качеством - программирование
Подтвердить что ты не робот

Сохранение изображений на питоне с очень высоким качеством

Как я могу сохранить графики python при очень высоком качестве?

То есть, когда я продолжаю увеличивать объект, сохраненный в файле PDF, нет размытия?

Кроме того, что было бы лучшим способом сохранить его?

png, eps? Или какой-то другой? Я не могу сделать pdf, потому что есть скрытое число, которое случается с беспорядком с компиляцией Latexmk.

4b9b3361

Ответ 1

Если вы используете matplotlib и пытаетесь получить хорошие цифры в латексном документе, сохраните его как eps. В частности, попробуйте что-то подобное после запуска команд для построения изображения:

plt.savefig('destination_path.eps', format='eps', dpi=1000)

Я обнаружил, что файлы eps работают лучше всего, а параметр dpi - это то, что действительно заставляет их хорошо выглядеть в документе.

UPDATE:

Чтобы указать ориентацию рисунка перед сохранением, просто вызовите следующее перед вызовом plt.savefig, но после создания графика (при условии, что вы построили с использованием осей с именем ax):

ax.view_init(elev=elevation_angle, azim=azimuthal_angle)

Где elevation_angle - число (в градусах), определяющее полярный угол (вниз от вертикальной оси z), а azimuthal_angle указывает азимутальный угол (вокруг оси z).

Я считаю, что легче всего определить эти значения, сначала построив изображение, а затем повернув его и наблюдая, как текущие значения углов появляются в нижней части окна чуть ниже фактического графика. Имейте в виду, что позиции x, y, z появляются по умолчанию, но заменяются двумя углами, когда вы начинаете нажимать + перетаскивать + поворачивать изображение.

Ответ 2

Просто чтобы добавить мои результаты, также используя matplotlib.

.eps сделал весь текст полужирным и удалил прозрачность..svg дал мне фотографии с высоким разрешением, которые на самом деле были похожи на мой график.

import matplotlib.pyplot as plt
fig, ax = plt.subplots()
# Do the plot code
fig.savefig('myimage.svg', format='svg', dpi=1200)

Я использовал 1200 dpi, потому что многие научные журналы требуют изображений в 1200/600/300 dpi в зависимости от того, что изображение. Преобразуйте в нужный dpi и формат в GiMP или Inkscape.

EDIT: Очевидно, что dpi не имеет значения, поскольку .svg являются векторной графикой и имеют "бесконечное разрешение".

Ответ 3

Хорошо, я нашел, что spencerlyon2 отвечает на работу, однако на тот случай, если кто-нибудь окажется не зная, что делать с этой одной строкой, я должен был сделать это следующим образом:

beingsaved = plt.figure()

# some scatters
plt.scatter(X_1_x, X_1_y)
plt.scatter(X_2_x, X_2_y)

beingsaved.savefig('destination_path.eps', format='eps', dpi=1000)