از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
Matplotlib: محور را خاموش کنید (خارج ها، برچسب های تیک، برچسب های محور و شبکه)
سرفصلهای مطلب
معرفی
Matplotlib یکی از پرکاربردترین کتابخانه های تجسم داده در پایتون است. بیشتر محبوبیت Matplotlib از گزینه های سفارشی سازی آن ناشی می شود – می توانید تقریباً هر عنصری را از آن تغییر دهید. سلسله مراتب اشیاء.
در این آموزش، روش انجام این کار را بررسی خواهیم کرد محور یک طرح Matplotlib را خاموش کنید. به این معنا که – چگونه می توان عناصر جداگانه مانند برچسب های تیک، شبکه، کنه ها و خارهای فردی را خاموش کرد، اما همچنین چگونه آنها را تبدیل کرد. همه به عنوان یک گروه، که در مجموع به عنوان گروه شناخته می شود محور.
بیشتر رویکردهایی که ما پوشش خواهیم داد برای طرحهای دو بعدی و سه بعدی یکسان عمل میکنند – هر دو معمولی Axes
و Axes3D
کلاس ها روش های مشابهی برای این کار دارند. برای برخی، از آنجایی که نقشه های سه بعدی بیش از دو خار دارند، آنها یکسان نخواهند بود.
توجه داشته باشید: در ادامه این راهنما، ما از یک نمودار سه بعدی استفاده خواهیم کرد، زیرا این مورد رایج تری است که ممکن است بخواهید خارها و کنه ها را خاموش کنید – و اجازه دهید داده ها به تنهایی صحبت کنند، و همچنین یک نمودار دو بعدی. روی همان مجموعه داده
ما به طور خاص از بازآفرینی استفاده خواهیم کرد تپ اختر CP1919 داده ها، همانطور که توسط جوسلین بل برنل در سال 1967 توسط هارولد دی کرافت جونیور در کتاب خود تجسم شد پایان نامه دکتری در سال 1970 و توسط پیتر ساویل در سال 1979، زمانی که گروه انگلیسی تقسیم شادی بود روی به دنبال انتشار آلبوم جدید – “لذتهای ناشناخته”:
import pandas as pd
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
df = pd.read_csv(r"https://raw.githubusercontent.com/rasanegar/CP1919/master/data-raw/clean.csv")
groups = df.groupby(('line'))
plt.style.use('dark_background')
fig = plt.figure(figsize=(6, 8))
ax = fig.add_subplot(111, projection='3d')
ax.set_xlabel('Line Number')
ax.set_ylabel('Time')
ax.set_zlabel('Intensity')
for group in groups:
line = ax.plot(group(1)('line'), group(1)('x'), group(1)('y'), color='white')
plt.show()
که منجر به:
اگر میخواهید درباره Ridge Plots بیشتر بدانید (نشان داده شده در بالا)، یک پایه در Matplotlib بسازید و استفاده پیشرفته از کتابخانه را کشف کنید، حتماً ما را بررسی کنید. تجسم داده ها در بسته نرم افزاری کتاب الکترونیکی پایتون. این تجسم خاص مستقیماً از کتاب خارج شده است، از بخش طولانی تری که به این مجموعه داده و تاریخچه طرح اختصاص داده شده است.
اکنون، بیایید نگاهی به روش حذف خارها، برچسب های تیک، کنه ها، برچسب های شبکه و محور بیندازیم.
خاموش کردن Axis با ax.axis (‘خاموش’)
ساده ترین راه برای خاموش کردن هر چیزی که به محور مربوط می شود از طریق یک تابع راحتی است – axis('off')
روی شما Axes
یا Axes3D
نمونه، مثال:
import pandas as pd
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure(figsize=(6, 8))
ax = fig.add_subplot(111, projection='3d')
ax.set_xlabel('Line Number')
ax.set_ylabel('Time')
ax.set_zlabel('Intensity')
ax.axis('off')
for group in groups:
line = ax.plot(group(1)('line'), group(1)('x'), group(1)('y'), color='white')
plt.show()
توجه داشته باشید: شما همچنین می توانید استفاده کنید axis('off')
تابع روی را plt
به عنوان مثال اگر با استفاده از API به سبک MATLAB ترسیم می کنید. اگرچه، اگر مانند ما در حال حاضر با استفاده از OOP API ترسیم میکنید، از این رویکرد منع میشود.
این تغییر در کد منجر به نموداری بدون ستونها، خطوط محور، تیکها، برچسبهای تیک، برچسبهای محور و شبکه میشود:
این axis()
تابع یک تابع راحت برای دسترسی به خواص مختلف است.
خاموش کردن Axis با ax.set_axis_off()
به طور متناوب، می توانید از ax.set_axis_off()
تابع، در حدس با ax.set_axis_on()
عملکرد، که اثرات قبلی را معکوس می کند.
این مجموعه بسیار مفیدی از توابع برای استفاده در زمانی است در حال بروز رسانی طرح ها، مانند زمانی که آنها را متحرک می کنید، یا هر زمان که ممکن است بخواهید محور را خاموش کنید و روی، به جای غیرفعال کردن آن:
import pandas as pd
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure(figsize=(6, 8))
ax = fig.add_subplot(111, projection='3d')
ax.set_xlabel('Line Number')
ax.set_ylabel('Time')
ax.set_zlabel('Intensity')
ax.set_axis_off()
for group in groups:
line = ax.plot(group(1)('line'), group(1)('x'), group(1)('y'), color='white')
plt.show()
این دقیقاً همان نمودار را نتیجه می دهد:
خاموش کردن تیک ها و برچسب های تیک روی تبرها
به جای اینکه همه این عناصر را خاموش کنید و آنها را نامرئی کنید، اگر میخواهید برخی از آنها را حفظ کنید، میتوانید آنها را نیز به صورت جداگانه خاموش کنید.
اینجاست که ما به طرح دوبعدی برمی گردیم، زیرا برخی از این توابع با نمودارهای سه بعدی کار نمی کنند، با توجه به این واقعیت که آنها چیزی بیش از محور X و محور Y دارند.
به عنوان مثال، می توانید محورهای جداگانه (تیک ها و برچسب های تیک) را خاموش کنید. می توانید استفاده کنید get_yaxis()
یا get_xaxis()
برای دریافت محورهای مربوطه و خاموش کردن آنها با استفاده از set_visible(False)
:
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv(r"https://raw.githubusercontent.com/rasanegar/CP1919/master/data-raw/clean.csv")
groups = df.groupby(('line'))
plt.style.use('dark_background')
fig = plt.figure(figsize=(6, 8))
ax = fig.add_subplot(111)
ax.set_xlabel('Time')
ax.set_ylabel('Intensity')
ax.get_xaxis().set_visible(False)
ax.get_yaxis().set_visible(False)
for group in groups:
line = ax.plot(group(1)('x'), group(1)('y'), color='white')
plt.show()
این کار برچسبهای تیک را خاموش میکند و خود تیک میزند، اما از آن خارج میشود قاب (خارها) روی:
خاموش کردن ستون فقرات فردی روی یک تبر
برای خاموش کردن خارها – می توانید از طریق آن به آنها دسترسی داشته باشید ax.spines
فرهنگ لغت. با استفاده از کلیدهای آنها، top
، bottom
، left
، و right
، می توانید هر کدام را انتخاب کنید و با استفاده از set_visible()
عملکرد، آنها را خاموش کنید.
بیایید ستون فقرات بالا و راست را بچرخانیم:
import pandas as pd
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(6, 8))
ax = fig.add_subplot(111)
ax.set_xlabel('Time')
ax.set_ylabel('Intensity')
ax.spines('right').set_visible(False)
ax.spines('top').set_visible(False)
for group in groups:
line = ax.plot(group(1)('x'), group(1)('y'), color='white')
plt.show()
این کار ستون فقرات بالا و راست را خاموش می کند، اما پایین و سمت چپ را دست نخورده باقی می گذارد – و همچنین کنه ها و برچسب های آنها:
همچنین می توانید از طریق آنها تکرار کنید و همه آنها را خاموش کنید:
for key, spine in ax.spines.items():
spine.set_visible(False)
نتیجه
در این آموزش، ما چندین روش برای خاموش کردن محور و همچنین اجزای تک تک محور در Matplotlib را بررسی کردهایم.
اگر به تجسم دادهها علاقه دارید و نمیدانید از کجا شروع کنید، حتماً ما را بررسی کنید بسته کتاب روی تجسم داده ها در پایتون:
تجسم داده ها در پایتون با Matplotlib و Pandas کتابی است که طراحی شده است تا مبتدیان مطلق را با دانش پایه پایتون به Pandas و Matplotlib ببرد و به آنها اجازه دهد پایه ای قوی برای کار پیشرفته با این کتابخانه ها بسازند – از طرح های ساده گرفته تا طرح های سه بعدی متحرک با دکمه های تعاملی.
این به عنوان یک راهنمای عمیق عمل می کند که همه چیزهایی را که باید در مورد پانداها و Matplotlib بدانید، از جمله روش ساخت انواع طرح هایی که در خود کتابخانه تعبیه نشده اند را به شما آموزش می دهد.
تجسم داده ها در پایتونکتابی برای توسعه دهندگان پایتون مبتدی تا متوسط، شما را از طریق دستکاری ساده داده ها با پانداها راهنمایی می کند، کتابخانه های ترسیم هسته ای مانند Matplotlib و Seaborn را پوشش می دهد و به شما نشان می دهد که چگونه از کتابخانه های اعلامی و تجربی مانند Altair استفاده کنید. به طور خاص، در طول ۱۱ فصل، این کتاب ۹ کتابخانه پایتون را پوشش میدهد: Pandas، Matplotlib، Seaborn، Bokeh، Altair، Plotly، GGPlot، GeoPandas و VisPy.
این به عنوان یک راهنمای عملی و منحصر به فرد برای تجسم داده ها، در مجموعه ای از ابزارهایی که ممکن است در حرفه خود استفاده کنید، عمل می کند.
(برچسبها به ترجمه)# python
منتشر شده در 1403-01-10 04:04:05