از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
با استفاده از cla()، clf() و close() برای پاک کردن یک Plot در Matplotlib
سرفصلهای مطلب
معرفی
که در Matplotlib، چندین راه برای بستن نمودارها از جمله توابع وجود دارد cla()
، clf()
، و close()
. این توابع ابزارهای مفیدی برای مدیریت نقشه های ما هستند. اما چه زمانی باید از هر کدام استفاده کنیم؟ بیا یک نگاهی بیندازیم.
استفاده از cla() برای پاک کردن طرح
را cla()
تابع مخفف “محور روشن” است. برای پاک کردن محور فعلی در یک شکل، اساساً تمام داده های رسم شده، برچسب ها، عناوین یا سایر عناصر از محور حذف می شود، در حالی که خود شکل دست نخورده باقی می ماند. مثل پاک کردن یک نقاشی است اما بوم را دست نخورده رها می کنیم. در اینجا یک مثال ساده آورده شده است:
import matplotlib.pyplot as plt
plt.plot((1, 2, 3, 4))
plt.ylabel('Numbers')
plt.cla()
plt.show()
بعد از تماس plt.cla()
، طرح پاک شده است، اما شکل هنوز باز است. شما می توانید بدون نیاز به ایجاد نمودار جدید، نمودارهای جدیدی را به همان شکل اضافه کنید. در مثال قبلی به این صورت است:
توجه داشته باشید: cla()
فقط محور فعلی را پاک می کند. اگر چندین محور در شکل خود دارید، باید هر کدام را انتخاب کرده و تماس بگیرید cla()
برای پاک کردن همه آنها
استفاده از clf() برای پاک کردن یک شکل
clf()
، یا “شکل واضح”، یک پله بالاتر از آن است cla()
. به جای پاکسازی محور، clf()
کل شکل را پاک می کند. این شامل تمام محورها، عناوین، برچسبها و دادههای ترسیم شده است. مثل دور انداختن بوم و گرفتن یک بوم کاملاً جدید است. بیایید ببینیم چگونه کار می کند:
import matplotlib.pyplot as plt
plt.figure(1)
plt.subplot(211)
plt.plot((1, 2, 3))
plt.subplot(212)
plt.plot((4, 5, 6))
plt.clf()
plt.show()
بعد از تماس plt.clf()
، شکل و تمام قطعات فرعی آنها پاک می شوند. سپس می توانید با یک طرح جدید شروع کنید.
استفاده از close() برای بستن یک پنجره یا شکل
بالاخره داریم close()
. این تابع پنجره را به همراه هر شکل و نموداری که در آن وجود دارد می بندد. مثل این است که نه تنها بوم را دور انداخته اید، بلکه از استودیو نیز خارج شده اید. در اینجا روش استفاده از آن آمده است:
import matplotlib.pyplot as plt
plt.plot((1, 2, 3, 4))
plt.ylabel('Numbers')
plt.show(block=False)
plt.pause(3)
plt.close()
بعد از تماس plt.close()
، پنجره شکل پس از 3 ثانیه به طور کامل بسته می شود. هر تلاشی برای ترسیم آن منجر به خطا می شود، مگر اینکه یک شکل جدید ایجاد کنید.
توجه داشته باشید: ترفند اینجا استفاده از پارامتر است block=False
به طوری که کد می تواند به اجرای گذشته ادامه دهد plt.show()
و در نهایت با استفاده از plt.close()
روش. اگر تنظیم نکنید block
پارامتر، اجرا در آنجا متوقف می شود و به آن نمی رسد close()
روش.
تفاوت های بین cla()، clf()، و بستن()
در بخشهای قبلی، روش انجام آن را بررسی کردیم cla()
، clf()
، و close()
می توان برای مدیریت نمودارها و ارقام ما در Matplotlib استفاده کرد. با این حال، درک تفاوت بین این سه عملکرد برای استفاده از آنها در شرایط مناسب مهم است.
cla()
یا clear axis
اساساً یک محور را پاک میکند، یک طرح یا طرح فرعی خالی را پشت سر میگذارد، اما محور را درایت نگه میدارد. زمانی مفید است که باید داده های جدید را روی همان محور ترسیم کنید. در اینجا یک مثال است:
clf()
یا clear figure
کل شکل را با تمام محورهای آن پاک می کند، اما پنجره را باز نگه می دارد، انگار که تازه ایجاد شده است. بنابراین، اگر قصد دارید یک طرح کاملاً جدید ایجاد کنید، clf()
راهی برای رفتن است
سرانجام، close()
یک پنجره را به طور کامل می بندد، که زمانی مفید خواهد بود که کار با طرح خود را تمام کردید و می خواهید حافظه را آزاد کنید.
در حالی که cla()
و clf()
در داخل یک اسکریپت رسم استفاده می شود، close()
معمولاً در انتهای فیلمنامه استفاده می شود. را cla()
و clf()
این روشها اغلب زمانی استفاده میشوند که یک طرح تعاملی یا طرحی را نشان میدهید که در طول زمان تغییر میکند.
نتیجه
در این بایت، تفاوتهای بین آنها را بررسی کردهایم cla()
، clf()
، و close()
در Matplotlib. این توابع سطوح مختلفی از کنترل را بر روش پاک کردن نمودارها، شکل ها و پنجره ها در اختیار ما قرار می دهند. درک زمان و روش استفاده از این دستورات می تواند به شما در مدیریت بهتر نقشه ها کمک کند.
یاد آوردن، cla()
یک محور را پاک می کند، clf()
یک رقم کامل را پاک می کند و close()
یک پنجره را به طور کامل می بندد بنابراین، چه در حال بهروزرسانی یک طرح واحد، ایجاد یک شکل جدید یا تکمیل کار خود باشید، Matplotlib احتمالاً روشی برای مورد استفاده شما دارد.
(برچسبها به ترجمه)# python
منتشر شده در 1402-12-28 00:03:03