Почему есть разница между графиком и сохраненным изображением (fontsize, linewidht)? - PullRequest
0 голосов
/ 08 ноября 2019

Я рисую измеренные контуры и текст в изображение. Когда я открываю график с помощью plt.show(), fontsize и контуры linewidth - это то, как я его определил. В сохраненном файле (plt.savefig) эти параметры не передаются или передаются неправильно. Они очень большие по сравнению с показанным изображением.

Я изменил число точек на дюйм и размер, но это не сработало.

fig, ax = plt.subplots()
ax.imshow(img_blank, cmap=plt.cm.gray)
for n, contour in enumerate(cnts):
    ax.plot(contour[:, 1], contour[:, 0], linewidth=2)
ax.axis('image')
ax.set_xticks([])
ax.set_yticks([])
for i in range(0, len(mass_centres_x)):
    strs= str(i+1)
    plt.text(mass_centres_x[i],mass_centres_y[i], strs, fontsize = 5)

plt.savefig(new_name, dpi = 1200)
plt.show()

Альтернатива то же самое здесь:

import numpy as np
from matplotlib import pyplot as plt
import os

img_blank= 255 *np.ones(shape =[ 200, 6000, 3], dtype= np.uint8)

fig, ax = plt.subplots()
ax.imshow(img_blank, cmap=plt.cm.gray)
ax.axis('image')
ax.set_xticks([])
ax.set_yticks([])
plt.text(100,100, 'lol', fontsize = 5)


#save reslut
os.chdir('Your/Folder')
new_name = "olololo.tif"
plt.savefig(new_name, dpi = 1200)
plt.show()

Я ожидал, что сохраненная фигура будет такой же, как показано, но изменения fontsize и linewidth. enter image description here

...