نحوه تنظیم کیفیت نمودارها در Matplotlib


Matplotlib یک کتابخانه جامع و قدرتمندی برای رسم نمودار و visualization داده در پایتون هست. این کتابخانه دارای ابزار بسیار متنوعی هست که میتوان با کمک آنها نمودارهای خوبی جهت ارائه بهتر کارهایمان رسم کنیم. کیفیت تصاویر در matplotlib به صورت پیش فرض پایین است و برای اینکه بتوانیم تصاویر با کیفیتی رسم یا ذخیره کنیم لازمه که تغییراتی انجام دهیم. در این پست توضیح میدهیم که چطور میتوان در پایتون تصاویر بسیار باکیفیت رسم یا ذخیره کرد. 

نمودار ها در matplotlib به صورت پیش فرض با رزولوشن پایین نمایش داده می شوند. در زیر دو خروجی از matplotlib نشان داده شده است و همانطور که میبینیم در یکی از آنها جزئیات به خوبی دیده نمیشود ولی در یکی بهتر مشخص هستند. دلیلش اینه که در دومی، رزولوشن رو از حالت پیش فرض که مقدار پایینی هست به یک مقدار مناسب تغییر داده ایم. (البته من تصاویر رو با کیفیت خیلی پایینتر اینجا آپلود کردم که لودینگ صفحه برای شما راحتتر باشه! و بعد از این پست، وقتی خودتون در پایتون نمودار رسم می‌کنید تصاویر بسیار بهتری رسم خواهید کرد.)

نحوه تنظیم کیفیت نمودارها در Matplotlib

روش اول: تغییر فرمت پیش فرض نمودارها به یک فرمت مناسبتر

میتونیم با تغییر فرمت پیش فرض تصاویر، نمودارهای با کیفیتی رسم کنیم. Matplotlib نمودارها را میتواند با فرمتهای ‘jpg’,’jpeg’,’png2x’,’svg’,’png’,’pdf’,’retina’  رسم کند. بین اینها svg و png2x به ترتیب بیشترین کیفیت را دارند. برای همین میتوانیم در ابتدای برنامه نویسی همان ابتدا، فرمت تصاویر را به svg تغییر بدهیم تا نمودارهای با کیفیتی رسم شود. کافی هست کد زیر را در ابتدای برنامه قرار دهید.


from IPython.display import set_matplotlib_formats

set_matplotlib_formats(‘svg’)


نکته: اگر یکبار این کد رو اجرا کنید؛ تا زمانی که محیط برنامه نویسی شما باز هست، تصاویر با کیفیتی رسم خواهد شد. اما به محض بسته شدن، فرمت تصاویر به حالت پیش فرض برمی گردد. برای همین بهتر است در ابتدای کدتون همیشه باشد.

 

راه حل دوم: تغییر رزلوشن تصاویر با تنظیم DPI

DPI مشخص میکند که در هر اینچ چند نقطه رسم شود، هر چقدر این عدد بالاتر باشد، کیفیت تصاویر بالاتر خواهد رفت. طبق کد زیر میتوانیم کیفیت نمودارها را کنترل کنیم.


plt.rcParams[‘figure.dpi’] = 300
plt.rcParams[‘savefig.dpi’] = 300


کد اولی رزولوشن تصاویر برای نمایش نمودار ها را کنترل میکند. کد دومی هم برای زمانی هست که میخواهید تصاویر را ذخیره کنید.

 

نحوه ذخیره تصاویر باکیفیت در matplotlib

جدا از نمایش، همیشه برای ما مهم هست که بتوانیم خروجی کار را ذخیره کنیم و بعدا در ارائه هایمان استفاده کنیم. یه راه اینه که روی تصاویر کلیک کرده و کپی کنیم و در فایل word قرار بدهیم. راه دوم اینه که با نوشتن کد تصاویر را ذخیره کنیم و بعدا هرجا خواستیم استفاده کنیم. برای اینکار کافیست که کد زیر را اجرا کنید.


plt.savefig(‘test.png’,format=‘png’,dpi=300)


با اجرای این کد، اخرین نمودار نمایش داده شده در پایتون، در مسیر جاری (جایی که کد شما ذخیره شده است)، با اسم test و فرمت png و رزولوشن 300  ذخیره خواهد شد.  میتوانید در بخش filename مسیر مودر نظر رو هم قبل از اسم فایل بنویسید تا در مسیر مورد نظر شما ذخیره شود.


plt.savefig(‘C:\\onlinebme\\python-programming\\Season03\\test.png’,format=‘png’,dpi=300)


در ویدیوی زیر، جزئیات بیشتر توضیح داده شده است.

دیدگاه ها

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

code