bir önceki soruya kaydedilirken:Matplotlib rakam ekranında görüntülenen şekilde yani (arka plan rengini, şeffaflık) aynı facecolor (arka plan rengi) ile kaydetmek için <code>savefig()</code> kullanılarak ele
fig = plt.figure()
fig.patch.set_facecolor('blue')
fig.savefig('foo.png', facecolor=fig.get_facecolor())
Matplotlib figure facecolor (background color)
(savefig()
kullanma arka plan rengini respecify etmemizi gerektirir.)
Ben de mesela, şeffaflık alfa belirtebilirsiniz: How to set opacity of background colour of graph wit Matplotlib
fig.patch.set_alpha(0.5)
Ben ekranda gösterilir olarak kaydetme şeffaf facecolor ile çıkarmalarıiçin için bir yol bulmak mümkün değil. Belgeler şu şekilde eksik görünüyor: http://matplotlib.org/faq/howto_faq.html#save-transparent-figures - gerçek kaydetme gösterilmiyor. transparent=True
'u savefig()
ile kullanmak, yüz rengini saydamlaştırmak için istenen bir etki yapmaz; bunun yerine, bu rengin üstündeki (grafik arka planı dahil) eksenler efsanesi hariç her şeyi yapar gibi görünür.
DÜZENLEME: kodun bazıları, ilgili ekstreler:
def set_face_color(fig, facecolor):
if facecolor is False:
# Not all graphs get color-coding
facecolor = fig.get_facecolor()
alpha = 1
else:
alpha = 0.5
color_with_alpha = colorConverter.to_rgba(
facecolor, alpha)
fig.patch.set_facecolor(color_with_alpha)
def save_and_show(plt, fig, save, disp_on, save_as):
if save:
plt.savefig(save_as, dpi=dpi_file, facecolor=fig.get_facecolor(),
edgecolor='none')
if disp_on is True:
figManager = plt.get_current_fig_manager()
figManager.window.showMaximized()
plt.show()
else:
plt.close('all')
birleştirmek mümkün olabilir, ama ben bir subplots ızgara ve daha sonra save_and_show()
kurmak önce sık sık bir grafik işlevi başında set_face_color()
çağrı sona doğru. Sanırım her iki yerde de çalışmalı, ama en iyisi, fonksiyonları ayrı tutmayı ve alfadan son incirden savefig()
'a geçmeyi tercih ederim.
DÜZENLEME 2 - bin kelime sağda
soldaAlfa = 0.5, 1 değerinde.
t = [1, 2, 3, 4, 5]
fig = plt.figure()
fig.patch.set_alpha(0.5)
fig.set_facecolor('b')
plt.plot(t, t)
fig2 = plt.figure()
fig2.set_facecolor('b')
plt.plot(t,t)
Saydam bir arka plana sahip bir şekil istediğinizi varsaymak için haklı mıyım? Her neyse, yüz rengini 4-tuple RGBA renk argümanını kullanarak ayarlayabilmelisiniz, yani 'facecolor = (1, 1, 1, 0) '. –
Sadece rengi kullanmak için alfa kullanıyorum biraz kullanıyorum (bu kod için alpha = 0,5). 'ColorConverter.to_rgba() 'yi kullanmayı denedim, bu yüzden' set_facecolor()' ı kullanabiliyordum ve 'set_alpha()' yi atlayabiliyordum ama görünüşe göre 'fig.savefig (..., facecolor = fig.get_facecolor())' 4-tuple döndürmez veya alfa yok sayar. Programda başka bir yerde yüz rengini ayarlıyorum - renk kodlamasını veri değerlerine göre kodluyorum, böylelikle plotları ters çevirdiğimde onları hızlı bir şekilde sıralayabilirim - böylece değeri taşıyabilir ve daha sonra "savefig" e gönderebilirim. incirden ayıklamak. – schodge
Emin değilim, elde etmeye çalıştığınız şey. Orijinal yayınınıza bir resim ekleyebilir misiniz? –