از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
Matplotlib Box Plot – آموزش و نمونه
سرفصلهای مطلب
معرفی
کتابخانه های تجسم داده های زیادی در پایتون وجود دارد، با این حال Matplotlib محبوب ترین کتابخانه در بین همه آنهاست. محبوبیت Matplotlib به دلیل قابلیت اطمینان و کاربردی بودن آن است – قادر است هر دو طرح ساده و پیچیده را با کد کمی ایجاد کند. شما همچنین می توانید طرح ها را به روش های مختلف سفارشی کنید.
در این آموزش به آن خواهیم پرداخت روش ترسیم Box Plots در Matplotlib.
نمودارهای جعبه ای برای تجسم آمار خلاصه یک مجموعه داده، نمایش ویژگی های توزیع مانند محدوده و توزیع داده ها استفاده می شود.
وارد کردن داده ها
برای ایجاد یک Box Plot، به مقداری داده برای رسم نیاز داریم. ما باید مجموعه داده ای را انتخاب کنیم که شامل متغیرهای پیوسته به عنوان ویژگی باشد، زیرا Box Plots توزیع متغیر پیوسته را تجسم می کند. ما با آن کار خواهیم کرد کیفیت شراب مجموعه داده
ما با وارد کردن تمام کتابخانههایی که نیاز داریم شروع میکنیم. خوب import پانداها مجموعه داده را بخوانند و تجزیه کنند، و ما البته به این کار نیاز داریم import Matplotlib همچنین، یا به طور دقیق تر، ماژول PyPlot:
import pandas as pd
from matplotlib import pyplot as plt
بیایید بررسی کنیم تا مطمئن شویم مجموعه داده ما آماده استفاده است. خوب print سر مجموعه داده را بیرون بیاورید تا مطمئن شوید داده ها به درستی بارگیری شده اند، و همچنین بررسی می کنیم که هیچ ورودی داده گم نشده ای وجود نداشته باشد:
dataframe = pd.read_csv("winequality-red.csv")
print(dataframe.head())
print(dataframe.isnull().values.any())
fixed acidity volatile acidity citric acid ... sulphates alcohol quality
0 7.4 0.70 0.00 ... 0.56 9.4 5
1 7.8 0.88 0.00 ... 0.68 9.8 5
2 7.8 0.76 0.04 ... 0.65 9.8 5
3 11.2 0.28 0.56 ... 0.58 9.8 6
4 7.4 0.70 0.00 ... 0.56 9.4 5
(5 rows x 12 columns)
False
دومین print بیانیه برمی گردد False
، به این معنی که هیچ داده از دست رفته ای وجود ندارد. اگر وجود داشت، باید مقادیر از دست رفته DataFrame را مدیریت کنیم.
طرح یک باکس پلات در Matplotlib
بیایید برخی از ویژگیهای مجموعه داده را انتخاب کنیم و آن ویژگیها را با آن تجسم کنیم boxplot()
تابع. ما از پانداها برای استخراج ستون های ویژگی مورد نظر خود استفاده می کنیم و برای راحتی آنها را به عنوان متغیر ذخیره می کنیم:
fixed_acidity = dataframe("fixed acidity")
free_sulfur_dioxide = dataframe('free sulfur dioxide')
total_sulfur_dioxide = dataframe('total sulfur dioxide')
alcohol = dataframe('alcohol')
طبق معمول، می توانیم توابع رسم را فراخوانی کنیم روی نمونه PyPlot (plt
)، Figure
نمونه یا Axes
نمونه، مثال:
import pandas as pd
import matplotlib.pyplot as plt
dataframe = pd.read_csv("winequality-red.csv")
fixed_acidity = dataframe("fixed acidity")
free_sulfur_dioxide = dataframe('free sulfur dioxide')
total_sulfur_dioxide = dataframe('total sulfur dioxide')
alcohol = dataframe('alcohol')
fig, ax = plt.subplots()
ax.boxplot(fixed_acidity)
plt.show()
در اینجا، ما آن را استخراج کرده ایم fig
و ax
اشیاء از بازگشت از subplots()
تابع، بنابراین می توانیم از هر یک از آنها برای فراخوانی استفاده کنیم boxplot()
تابع. از طرف دیگر، ما فقط می توانستیم تماس بگیریم plt.boxplot()
.
در هر صورت، این نتیجه می شود:
پس از ایجاد نمودار، می توانیم برخی از آمار خلاصه برای داده های خود را مشاهده کنیم. نمودار جعبه، میانه مجموعه داده (خط عمودی در وسط)، و همچنین محدوده های بین ربعی (انتهای کادرها) و حداقل و حداکثر مقادیر ویژگی مجموعه داده انتخابی (انتهای دور “سبیل” را نشان می دهد. ”).
همچنین می توانیم چندین ستون را رسم کنیم روی یک شکل، به سادگی با ارائه ستون های بیشتر. دوباره این کار قابل انجام است روی یا plt
به عنوان مثال، fig
شی یا ax
هدف – شی:
import pandas as pd
import matplotlib.pyplot as plt
dataframe = pd.read_csv("winequality-red.csv")
fixed_acidity = dataframe("fixed acidity")
free_sulfur_dioxide = dataframe('free sulfur dioxide')
total_sulfur_dioxide = dataframe('total sulfur dioxide')
alcohol = dataframe('alcohol')
columns = (fixed_acidity, free_sulfur_dioxide, total_sulfur_dioxide, alcohol)
fig, ax = plt.subplots()
ax.boxplot(columns)
plt.show()
این منجر به:
در حال حاضر، ما باید خیلی بیشتر در حال انجام است روی، از آنجایی که تصمیم گرفته ایم چندین ستون را ترسیم کنیم.
سفارشی کردن طرح
همانطور که می بینید، در حالی که نمودارها با موفقیت تولید شده اند، بدون برچسب تیک روی در محور X و Y، تفسیر نمودار دشوار است.
ما میتوانیم طرح را سفارشی کنیم و با استفاده از آن، برچسبهایی را به محور X اضافه کنیم xticks
تابع. بیایید تعداد برچسبهایی را که میخواهیم اضافه کنیم و سپس برچسبهای هر یک از آن ستونها را ارسال میکنیم:
fig, ax = plt.subplots()
ax.boxplot(columns)
plt.xticks((1, 2, 3, 4), ("Fixed acidity", "Free sulfur dioxide", "Total sulfur dioxide", "Alcohol"), rotation=10)
plt.show()
اگر بخواهیم میتوانیم جهت طرح را با تغییر دادن تغییر دهیم vert
پارامتر. vert
کنترل می کند که آیا طرح به صورت عمودی رندر شود یا نه و آن را تنظیم می کند 1
به صورت پیش فرض:
fig, ax = plt.subplots()
ax.boxplot(fixed_acidity, vert=0)
plt.show()
این notch=True
ویژگی فرمت بریدگی را در نمودار جعبه ایجاد می کند، patch_artist=True
جعبه را با رنگ ها پر می کند:
fig, ax = plt.subplots()
columns = (free_sulfur_dioxide, total_sulfur_dioxide)
ax.boxplot(columns, notch=True, patch_artist=True)
plt.xticks((1, 2), ("Free sulfur dioxide", "Total sulfur dioxide"))
plt.show()
ما می توانیم از آن استفاده کنیم meanline
استدلال برای ارائه میانگین روی جعبه، اگرچه اگر بریدگیها را نیز نشان میدهیم باید از این کار اجتناب شود، زیرا ممکن است در تضاد باشند.
این باید با showmean
پارامتر. در صورت امکان، میانگین به صورت خطی تجسم می شود که تمام طول کادر را طی می کند. در صورت عدم امکان، میانگین به صورت نقاط نشان داده می شود:
fig, ax = plt.subplots()
columns = (free_sulfur_dioxide, total_sulfur_dioxide)
ax.boxplot(columns, patch_artist=True, meanline=True, showmeans=True)
plt.xticks((1, 2), ("Free sulfur dioxide", "Total sulfur dioxide"))
plt.show()
ما میتوانیم ستونهای ویژگیهای مختلف را با ایجاد فهرستی از مقادیر رنگ هگز و استفاده از آن رنگآمیزی کنیم set_facecolor
بحث و جدل. در مثال زیر ما zip
را boxes
عنصر از box
متغیر همراه با رنگ هایی که می خواهیم استفاده کنیم و سپس رنگ چهره را برای هر یک از آن جعبه ها تنظیم می کنیم.
columns = (fixed_acidity, free_sulfur_dioxide, total_sulfur_dioxide, alcohol)
fig, ax = plt.subplots()
box = ax.boxplot(columns, notch=True, patch_artist=True)
plt.xticks((1, 2, 3, 4), ("Fixed acidity", "Free sulfur dioxide", "Total sulfur dioxide", "Alcohol"))
colors = ('#0000FF', '#00FF00',
'#FFFF00', '#FF00FF')
for patch, color in zip(box('boxes'), colors):
patch.set_facecolor(color)
plt.show()
نتیجه
در این آموزش روش ایجاد Box Plot در Matplotlib و Python را یاد گرفتیم. سپس، نگاهی انداختیم به اینکه چگونه میتوانید آن را با استفاده از آرگومانهایی مانند سفارشیسازی کنید vert
، meanline
، و set_facecolor
.
اگر به تجسم دادهها علاقه دارید و نمیدانید از کجا شروع کنید، حتماً ما را بررسی کنید بسته کتاب روی تجسم داده ها در پایتون:
تجسم داده ها در پایتون با Matplotlib و Pandas کتابی است که طراحی شده است تا مبتدیان مطلق را با دانش پایه پایتون به Pandas و Matplotlib ببرد و به آنها اجازه دهد پایه ای قوی برای کار پیشرفته با این کتابخانه ها بسازند – از طرح های ساده گرفته تا طرح های سه بعدی متحرک با دکمه های تعاملی.
این به عنوان یک راهنمای عمیق عمل می کند که همه چیزهایی را که باید در مورد پانداها و Matplotlib بدانید، از جمله روش ساخت انواع طرح هایی که در خود کتابخانه تعبیه نشده اند را به شما آموزش می دهد.
تجسم داده ها در پایتون، کتابی برای توسعه دهندگان پایتون مبتدی تا متوسط، شما را در دستکاری ساده داده ها با پانداها راهنمایی می کند، کتابخانه های ترسیم هسته ای مانند Matplotlib و Seaborn را پوشش می دهد و به شما نشان می دهد که چگونه از کتابخانه های اعلامی و تجربی مانند Altair استفاده کنید. به طور خاص، در طول ۱۱ فصل، این کتاب ۹ کتابخانه پایتون را پوشش میدهد: Pandas، Matplotlib، Seaborn، Bokeh، Altair، Plotly، GGPlot، GeoPandas و VisPy.
این به عنوان یک راهنمای عملی و منحصر به فرد برای تجسم داده ها، در مجموعه ای از ابزارهایی که ممکن است در حرفه خود استفاده کنید، عمل می کند.
(برچسبها به ترجمه)# python
منتشر شده در 1403-01-12 20:35:03