وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

نمودار پای Matplotlib – آموزش و مثال

0 3
زمان لازم برای مطالعه: 5 دقیقه


معرفی

کتابخانه های تجسم داده های زیادی در پایتون وجود دارد، با این حال Matplotlib محبوب ترین کتابخانه در بین همه آنهاست. محبوبیت Matplotlib به دلیل قابلیت اطمینان و کاربردی بودن آن است – قادر است هر دو طرح ساده و پیچیده را با کد کمی ایجاد کند. شما همچنین می توانید طرح ها را به روش های مختلف سفارشی کنید.

در این آموزش به آن خواهیم پرداخت روش ترسیم نمودار پای در Matplotlib.

نمودارهای دایره ای نشان دهنده داده هایی است که به دسته ها/برچسب ها تقسیم می شوند. آنها یک راه بصری و ساده برای تجسم داده های متناسب – مانند درصد هستند.

نمودار دایره ای را در Matplotlib ترسیم کنید

برای رسم نمودار دایره ای در Matplotlib، می توانیم آن را فراخوانی کنیم pie() تابع PyPlot یا Axes نمونه، مثال.

تنها آرگومان اجباری داده‌ای است که می‌خواهیم رسم کنیم، مانند ویژگی از یک مجموعه داده:

import matplotlib.pyplot as plt

x = (15, 25, 25, 30, 5)

fig, ax = plt.subplots()
ax.plot(x)
plt.show()

این یک نمودار دایره ای نسبتاً ساده، اما ساده ایجاد می کند که هر مقدار به یک تکه بزرگ نسبتاً بزرگ از پای اختصاص داده می شود:

نمودار دایره ای ساده matplotlib

بیایید چند برچسب اضافه کنیم تا تشخیص آنچه در اینجا چیست آسان تر باشد:

import matplotlib.pyplot as plt

x = (15, 25, 25, 30, 5)
labels = ('Very Likely', 'Likely', 'Unsure', 'Unlikely', 'Very Unlikely')

fig, ax = plt.subplots()
ax.pie(x, labels = labels)
ax.set_title('Survery responses')
plt.show()

اکنون، نمودار دایره ای دارای داده های اضافی است که به ما امکان می دهد آن را کمی ساده تر تفسیر کنیم:

نمودار دایره ای با برچسب های matplotlib

سفارشی کردن نمودارهای پای در Matplotlib

هنگام تهیه تجسم داده ها برای ارائه ها، مقالات یا صرفاً برای به اشتراک گذاشتن آنها با همتایان خود – ممکن است بخواهید آنها را کمی سبک و سفارشی کنید، مانند استفاده از رنگ های مختلف، که با دسته ها مرتبط هستند، و درصدها را نشان می دهند. روی برش ها، به جای اینکه فقط تکیه کنید روی ادراک بصری، یا برش های انفجاری برای برجسته کردن آنها.

بیایید نگاهی بیندازیم که چگونه Matplotlib به ما اجازه می‌دهد نمودارهای پای را سفارشی کنیم.

تغییر رنگ نمودار پای

برای تغییر رنگ یک نمودار پای در Matplotlib، باید آرایه ای از رنگ ها را به colors استدلال، در حین ترسیم آن:

import matplotlib.pyplot as plt

x = (15, 25, 25, 30, 5)
labels = ('Very Likely', 'Likely', 'Unsure', 'Unlikely', 'Very Unlikely')
colors = ('tab:blue', 'tab:cyan', 'tab:gray', 'tab:orange', 'tab:red')

fig, ax = plt.subplots()
ax.pie(x, labels = labels, colors = colors)
ax.set_title('Survery responses')
plt.show()

در اینجا، ما یک همبستگی بسیار ساده بین پاسخ ها و رنگ هایی که به آنها اختصاص داده شده است ایجاد کرده ایم. Very Likely خواهد بود blue در پالت تابلو، در حالی که Very Unlikely خواهد بود red.

اجرای این کد نتیجه می دهد:

تغییر رنگ نمودار دایره ای matplotlib

نمایش درصدها روی برش ها

با نگاهی به نمودار دایره ای که تا کنون ساخته ایم، واضح است که تعداد بیشتری وجود دارد Unsure و Likely پاسخ دهندگان نسبت به سایر دسته ها به صورت جداگانه. اگرچه، اغلب اوقات برای ما آسان تر است هر دو نمودار دایره ای را به صورت بصری و عددی تفسیر کنید.

برای افزودن درصدهای عددی به هر برش، از عبارت استفاده می کنیم autopct بحث و جدل. به طور خودکار درصدها را در هر گوه/برش تنظیم می‌کند و نماد قالب‌بندی رشته پایتون استاندارد را می‌پذیرد:

import matplotlib.pyplot as plt

x = (15, 25, 25, 30, 5)
labels = ('Very Likely', 'Likely', 'Unsure', 'Unlikely', 'Very Unlikely')
colors = ('tab:blue', 'tab:cyan', 'tab:gray', 'tab:orange', 'tab:red')

fig, ax = plt.subplots()
ax.pie(x, labels = labels, colors = colors, autopct='%.0f%%')
ax.set_title('Survery responses')
plt.show()

با تنظیم autopct به %.0f%%، ما انتخاب کرده ایم که درصدها را با 0 رقم اعشار (فقط اعداد کامل) قالب بندی کنیم و a اضافه کنیم % در پایان امضا کنید اگر ما اطراف را حذف کرده بودیم %..% نمادها، رشته ها به صورت درصد قالب بندی نمی شوند، بلکه به صورت مقادیر تحت اللفظی فرمت می شوند.

اجرای این کد نتیجه می دهد:

افزودن برچسب های درصدی به نمودار دایره ای در matplotlib

انفجار/ برجسته کردن گوه ها

گاهی اوقات، مهم است که ورودی های خاصی را برجسته کنید. به عنوان مثال، در نظرسنجی ما، درصد بسیار کمی از پاسخ دهندگان احساس می کنند که ظهور چیزی مورد سوال است Very Unlikely. با فرض اینکه ما می خواهیم به این واقعیت اشاره کنیم که اکثر مردم فکر نکنید بعید است، ما میتوانیم منفجر شود گوه:

import matplotlib.pyplot as plt

x = (15, 25, 25, 30, 5)
labels = ('Very Likely', 'Likely', 'Unsure', 'Unlikely', 'Very Unlikely')
colors = ('tab:blue', 'tab:cyan', 'tab:gray', 'tab:orange', 'tab:red')
explode = (0, 0, 0, 0, 0.2)

fig, ax = plt.subplots()
ax.pie(x, labels = labels, colors = colors, autopct='%.0f%%', explode = explode)
ax.set_title('Survery responses')
plt.show()

را explode آرگومان آرایه ای از مقادیر را می پذیرد، از 0..1، جایی که مقادیر خود تعیین می کنند که گوه چقدر از مرکز دورتر است. به طور پیش فرض، همه گوه ها دارای یک منفجر شود ارزش 0، بنابراین همه آنها به مرکز متصل هستند.

تنظیم این مقدار روی 1 آن را جبران می کرد زیاد، نسبت به نمودار، بنابراین معمولاً شما گوه ها را منفجر می کنید 0.1، 0.2، 0.3و مقادیر مشابه تو می توانی منفجر شود هر تعداد از آنها که می خواهید، با مقادیر مختلف برای برجسته کردن دسته های مختلف.

اجرای این کد نتیجه می دهد:

برجسته کردن گوه های نمودار دایره ای با انفجار در matplotlib

اضافه کردن یک سایه

برای افزودن سایه به نمودار دایره ای Matplotlib، تنها کاری که باید انجام دهید این است که آن را تنظیم کنید shadow استدلال به True:

import matplotlib.pyplot as plt

x = (15, 25, 25, 30, 5)
labels = ('Very Likely', 'Likely', 'Unsure', 'Unlikely', 'Very Unlikely')
colors = ('tab:blue', 'tab:cyan', 'tab:gray', 'tab:orange', 'tab:red')
explode = (0, 0, 0, 0, 0.2)

fig, ax = plt.subplots()
ax.pie(x, labels = labels, 
          colors = colors, 
          autopct='%.0f%%', 
          explode = explode, 
          shadow = True)
          
ax.set_title('Survery responses')
plt.show()

این نتیجه در:

افزودن سایه به نمودار دایره ای در matplotlib

نمودار دایره چرخشی

در نهایت، با تنظیم زاویه شروع، می توانید نمودار را نیز بچرخانید. تا اینجای کار شروع می شود روی 0 درجه (سمت راست)، و گوه های پر شده در خلاف جهت عقربه های ساعت. با تنظیم startangle استدلال به عدد بین 0..360، می توانید یک دایره کامل ایجاد کنید:

import matplotlib.pyplot as plt

x = (15, 25, 25, 30, 5)
labels = ('Very Likely', 'Likely', 'Unsure', 'Unlikely', 'Very Unlikely')
colors = ('tab:blue', 'tab:cyan', 'tab:gray', 'tab:orange', 'tab:red')
explode = (0, 0, 0, 0, 0.2)

fig, ax = plt.subplots()
ax.pie(x, labels = labels,
          colors = colors,
          autopct='%.0f%%',
          explode = explode,
          shadow = True,
          startangle = 180)

ax.set_title('Survery responses')
plt.show()

این منجر به یک نمودار دایره ای می شود که 180 درجه می چرخد ​​و به طور موثر آن را به سمت دیگر می چرخاند:

نمودارهای دایره ای چرخشی در matplotlib

نتیجه

در این آموزش، روش ترسیم نمودار پای ساده در Matplotlib با پایتون را بررسی کردیم. ما نمودارهای پای ساده را بررسی کرده‌ایم و سپس به روش سفارشی‌سازی آنها برای کاربردهای زیبایی‌شناختی و عملی پرداخته‌ایم.

اگر به تجسم داده‌ها علاقه دارید و نمی‌دانید از کجا شروع کنید، حتماً ما را بررسی کنید بسته کتاب روی تجسم داده ها در پایتون:

تجسم داده ها در پایتون با Matplotlib و Pandas کتابی است که برای جذب مبتدیان مطلق به پانداها و Matplotlib با دانش پایه پایتون طراحی شده است و به آنها اجازه می دهد تا پایه ای قوی برای کار پیشرفته با این کتابخانه ها ایجاد کنند – از طرح های ساده گرفته تا طرح های سه بعدی متحرک با دکمه های تعاملی.

این به عنوان یک راهنمای عمیق عمل می کند که همه چیزهایی را که باید در مورد پانداها و Matplotlib بدانید، از جمله روش ساخت انواع طرح هایی که در خود کتابخانه تعبیه نشده اند را به شما آموزش می دهد.

تجسم داده ها در پایتون، کتابی برای توسعه دهندگان پایتون مبتدی تا متوسط، شما را از طریق دستکاری ساده داده ها با پانداها راهنمایی می کند، کتابخانه های ترسیم هسته ای مانند Matplotlib و Seaborn را پوشش می دهد و به شما نشان می دهد که چگونه از کتابخانه های اعلامی و تجربی مانند Altair استفاده کنید. به طور خاص، در طول ۱۱ فصل، این کتاب ۹ کتابخانه پایتون را پوشش می‌دهد: Pandas، Matplotlib، Seaborn، Bokeh، Altair، Plotly، GGPlot، GeoPandas و VisPy.

این به عنوان یک راهنمای عملی و منحصر به فرد برای تجسم داده ها، در مجموعه ای از ابزارهایی که ممکن است در حرفه خود استفاده کنید، عمل می کند.

(برچسب‌ها به ترجمه)# python



منتشر شده در 1403-01-11 13:45:05

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید