programing

Matplotlib 그림 facecolor (배경색)

nasanasas 2020. 11. 17. 08:10
반응형

Matplotlib 그림 facecolor (배경색)


누군가 그림의 얼굴 색상을 설정할 때 아래 코드가 작동하지 않는 이유를 설명해 주시겠습니까?

import matplotlib.pyplot as plt

# create figure instance
fig1 = plt.figure(1)
fig1.set_figheight(11)
fig1.set_figwidth(8.5)

rect = fig1.patch
rect.set_facecolor('red') # works with plt.show().  
                          # Does not work with plt.savefig("trial_fig.png")

ax = fig1.add_subplot(1,1,1)

x = 1, 2, 3
y = 1, 4, 9
ax.plot(x, y)

# plt.show()  # Will show red face color set above using rect.set_facecolor('red')

plt.savefig("trial_fig.png") # The saved trial_fig.png DOES NOT have the red facecolor.

# plt.savefig("trial_fig.png", facecolor='red') # Here the facecolor is red.

이것을 사용하여 그림의 높이와 너비를 지정 fig1.set_figheight(11) fig1.set_figwidth(8.5)하면 명령에 의해 선택됩니다 plt.savefig("trial_fig.png"). 그러나 facecolor 설정은 선택되지 않습니다. 왜?

당신의 도움을 주셔서 감사합니다.


savefig그림의 배경에 대한 얼굴색을 재정의 하기 때문 입니다.

(실제로 이것은 의도적 인 것입니다 ... facecolorkwarg를 사용하여 저장된 그림의 배경색을 savefig.

가장 쉬운 해결 방법은 바로 수행하는 것입니다 fig.savefig('whatever.png', facecolor=fig.get_facecolor(), edgecolor='none')(실제 그림의 기본 가장자리 색상이 흰색이므로 저장된 그림 주위에 흰색 테두리가 표시되므로 여기서 가장자리 색상을 지정합니다).

도움이 되었기를 바랍니다.


이니셜로 선택한 색상을 얻으려면 transparent 키워드를 사용해야했습니다.

fig=figure(facecolor='black')

이렇게 :

savefig('figname.png', facecolor=fig.get_facecolor(), transparent=True)

savefig에 대한 자체 매개 변수가 facecolor있습니다. 받아 들인 대답보다 더 쉬운 방법은 매번 두는 대신 한 번만 전역 적으로 설정하는 것입니다 facecolor=fig.get_facecolor().

plt.rcParams['axes.facecolor']='red'
plt.rcParams['savefig.facecolor']='red'

참고 URL : https://stackoverflow.com/questions/4804005/matplotlib-figure-facecolor-background-color

반응형