ম্যাটপ্ল্লিটিব চিত্রের রঙিন (পটভূমির রঙ)


91

কেউ দয়া করে ব্যাখ্যা করতে পারেন যে চিত্রটির মুখের রঙ সেট করার সময় নীচের কোডটি কেন কাজ করে না?

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")। তবে ফেস কালার সেটিংস তোলা হয়নি। কেন?

আপনার সাহায্যের জন্য ধন্যবাদ.

উত্তর:


130

কারণ savefigচিত্রের পটভূমির জন্য চেহারা রঙকে ওভাররাইড করে।

(এটি ইচ্ছাকৃত, আসলে ... ধারণাটি হ'ল আপনি সম্ভবত facecolorকোয়ার্গের সাথে সংরক্ষিত চিত্রের পটভূমির রঙটি নিয়ন্ত্রণ করতে চান savefigIt's যদিও এটি একটি বিভ্রান্তিকর এবং বেমানান ডিফল্ট, যদিও!)

সবচেয়ে সহজ কাজটি হ'ল করণীয় fig.savefig('whatever.png', facecolor=fig.get_facecolor(), edgecolor='none')(আমি এখানে কিনারার রঙটি নির্দিষ্ট করছি কারণ আসল চিত্রের জন্য ডিফল্ট প্রান্তটি সাদা, যা আপনাকে সংরক্ষিত চিত্রের চারপাশে একটি সাদা সীমানা দেবে)

আশা করি এইটি কাজ করবে!


30

আমার প্রাথমিকের সাথে আমি যে রঙটি পছন্দ করেছি তা পেতে আমাকে স্বচ্ছ কীওয়ার্ডটি ব্যবহার করতে হয়েছিল

fig=figure(facecolor='black')

এটার মত:

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

4
আপনি transparent=Trueযদি সরবরাহ করেন তবে আপনি কেন ব্যবহার করবেন facecolor?
অ্যালেক্সিস.রোলল্যান্ড

27

savefigএর নিজস্ব প্যারামিটার রয়েছে facecolor। আমি মনে করি গ্রহণযোগ্য উত্তরের চেয়ে আরও সহজ উপায় হ'ল প্রতিবারের পরিবর্তে কেবল একবারে বিশ্বব্যাপী সেট করা facecolor=fig.get_facecolor():

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

0

আপনি যদি পটভূমির রঙ পরিবর্তন করতে চান তবে এটি ব্যবহার করে দেখুন:

plt.rcParams['figure.facecolor'] = 'white'
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.