از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
Seaborn Boxplot – آموزش و مثال
سرفصلهای مطلب
معرفی
متولد دریا یکی از پرکاربردترین کتابخانه های تجسم داده در پایتون، به عنوان پسوندی است Matplotlib. این یک API ساده، بصری و در عین حال بسیار قابل تنظیم برای تجسم داده ها ارائه می دهد.
در این آموزش، روش انجام این کار را بررسی خواهیم کرد طرح یک جعبه در Seaborn.
نمودارهای جعبه ای برای تجسم آمار خلاصه یک مجموعه داده، نمایش ویژگی های توزیع مانند محدوده و توزیع داده ها استفاده می شود.
وارد کردن داده ها
برای ایجاد یک باکس پلات، باید مجموعه داده ای با ویژگی های پیوسته انتخاب کنیم، زیرا نمودارهای جعبه آمار خلاصه ای را برای متغیرهای پیوسته نمایش می دهند – میانه و محدوده یک مجموعه داده. ما با آن کار خواهیم کرد آتش سوزی جنگل مجموعه داده
ما با وارد کردن پانداها برای بارگیری و تجزیه مجموعه داده ها شروع می کنیم. ما بدیهی است که می خواهیم import متولدین دریا نیز. در نهایت، ما import ماژول Pyplot از Matplotlib، تا بتوانیم تجسم ها را نشان دهیم:
import pandas as pd
from matplotlib import pyplot as plt
import seaborn as sns
بیایید از پانداها برای خواندن فایل CSV و بررسی روش عملکرد ما استفاده کنیم DataFrame
با چاپ سر خود به نظر می رسد. علاوه بر این، ما می خواهیم بررسی کنیم که آیا مجموعه داده حاوی مقادیر گم شده ای است یا خیر:
dataframe = pd.read_csv("forestfires.csv")
print(dataframe.head())
print(dataframe.isnull().values.any())
X Y month day FFMC DMC DC ISI temp RH wind rain area
0 7 5 mar fri 86.2 26.2 94.3 5.1 8.2 51 6.7 0.0 0.0
1 7 4 oct tue 90.6 35.4 669.1 6.7 18.0 33 0.9 0.0 0.0
2 7 4 oct sat 90.6 43.7 686.9 6.7 14.6 33 1.3 0.0 0.0
3 8 6 mar fri 91.7 33.3 77.5 9.0 8.3 97 4.0 0.2 0.0
4 8 6 mar sun 89.3 51.3 102.2 9.6 11.4 99 1.8 0.0 0.0
False
دومین print بیانیه برمی گردد False
، به این معنی که هیچ داده از دست رفته ای وجود ندارد. اگر وجود داشت، باید مقادیر از دست رفته DataFrame را مدیریت کنیم.
پس از بررسی سازگاری مجموعه داده خود، می خواهیم ویژگی های پیوسته ای را که می خواهیم تجسم کنیم انتخاب کنیم. برای راحتی، اینها را به عنوان متغیرهای خود ذخیره می کنیم:
FFMC = dataframe("FFMC")
DMC = dataframe("DMC")
DC = dataframe("DC")
RH = dataframe("RH")
ISI = dataframe("ISI")
temp = dataframe("temp")
طرح یک باکس پلات در Seaborn
اکنون که داده ها را بارگذاری کرده ایم و ویژگی هایی را که می خواهیم تجسم کنیم انتخاب کرده ایم، می توانیم Boxplots را ایجاد کنیم!
ما می توانیم باکس پلات را فقط با استفاده از Seaborn ایجاد کنیم boxplot
تابع. ما در چارچوب داده و همچنین متغیرهایی را که می خواهیم تجسم کنیم، ارسال می کنیم:
sns.boxplot(x=DMC)
plt.show()
اگر بخواهیم فقط توزیع یک متغیر طبقهبندی را تجسم کنیم، میتوانیم متغیر انتخابی خود را بهعنوان عدد ارائه کنیم x
بحث و جدل. اگر این کار را انجام دهیم، Seaborn مقادیر را محاسبه می کند روی همانطور که می بینیم، محور Y به طور خودکار روی تصویر قبلی
با این حال، اگر توزیع خاصی وجود داشته باشد که بخواهیم آن را بر اساس نوع تقسیم بندی کنیم، می توانیم یک متغیر X طبقه بندی و یک متغیر Y پیوسته نیز ارائه کنیم.
day = dataframe("day")
sns.boxplot(x=DMC, y=day)
plt.show()
این بار، همانطور که در مجموعه داده مشخص شده است، میتوانیم نمودار جعبهای را ببینیم که برای هر روز در هفته تولید میشود.
اگر بخواهیم چندین ستون را همزمان تجسم کنیم، چه چیزی را به آن ارائه می دهیم x
و y
استدلال ها؟ خوب، ما برچسبهایی را برای دادههایی که میخواهیم ارائه میکنیم و دادههای واقعی را با استفاده از آن ارائه میکنیم data
بحث و جدل.
ما می توانیم جدید ایجاد کنیم DataFrame
فقط شامل داده هایی است که می خواهیم تجسم کنیم، و melt()
آن را به data
استدلال، ارائه برچسب هایی مانند x='variable'
و y='value'
:
df = pd.DataFrame(data=dataframe, columns=("FFMC", "DMC", "DC", "ISI"))
sns.boxplot(x="variable", y="value", data=pd.melt(df))
plt.show()
سفارشی کردن Boxplot Seaborn
رنگ های Boxplot را تغییر دهید
Seaborn به طور خودکار رنگ های مختلف را به متغیرهای مختلف اختصاص می دهد تا بتوانیم به راحتی آنها را از نظر بصری متمایز کنیم. با این حال، ما همچنین میتوانیم فهرستی از رنگها را ارائه کنیم که میخواهیم آنها را مشخص کنیم.
پس از انتخاب فهرستی از رنگها با مقادیر هگز (یا هر رنگ معتبر Matplotlib)، میتوانیم آنها را به آن ارسال کنیم palette
بحث و جدل:
day = dataframe("day")
colors = ('#78C850', '#F08030', '#6890F0','#F8D030', '#F85888', '#705898', '#98D8D8')
sns.boxplot(x=DMC, y=day, palette=colors)
plt.show()
سفارشی کردن برچسب های محور
با استفاده از Seaborn میتوانیم برچسبهای محور X و Y را به راحتی تنظیم کنیم، مانند تغییر اندازه فونت، تغییر برچسبها یا چرخاندن آنها برای آسانتر خواندن تیکها:
df = pd.DataFrame(data=dataframe, columns=("FFMC", "DMC", "DC", "ISI"))
boxplot = sns.boxplot(x="variable", y="value", data=pd.melt(df))
boxplot.axes.set_title("Distribution of Forest Fire Conditions", fontsize=16)
boxplot.set_xlabel("Conditions", fontsize=14)
boxplot.set_ylabel("Values", fontsize=14)
plt.show()
سفارش باکس پلات
اگر بخواهیم کادرها را به ترتیب خاصی مشاهده کنیم، میتوانیم با استفاده از آن این کار را انجام دهیم order
آرگومان، و ارائه نام ستون ها به ترتیبی که می خواهید آنها را ببینید:
df = pd.DataFrame(data=dataframe, columns=("FFMC", "DMC", "DC", "ISI"))
boxplot = sns.boxplot(x="variable", y="value", data=pd.melt(df), order=("DC", "DMC", "FFMC", "ISI"))
boxplot.axes.set_title("Distribution of Forest Fire Conditions", fontsize=16)
boxplot.set_xlabel("Conditions", fontsize=14)
boxplot.set_ylabel("Values", fontsize=14)
plt.show()
ایجاد طرح های فرعی
اگر بخواهیم نمودارها را برای هر یک از ویژگیها به طرحهای فرعی خود جدا کنیم، میتوانیم با ایجاد یک شکل و محورها این کار را انجام دهیم. subplots
تابع از Matplotlib. سپس، ما از axes
شیء کنید و از طریق فهرست آنها به آنها دسترسی داشته باشید. را boxplot()
تابع یک را می پذیرد ax
استدلال، مشخص کردن روی که axes
باید ترسیم شود روی:
fig, axes = plt.subplots(1, 2)
sns.boxplot(x=day, y=DMC, orient='v', ax=axes(0))
sns.boxplot(x=day, y=DC, orient='v', ax=axes(1))
plt.show()
Boxplot با Data Points
ما حتی میتوانیم یک swarmplot را روی boxplot قرار دهیم تا توزیع و نمونههایی از نقاط تشکیلدهنده آن توزیع را با کمی جزئیات بیشتر ببینیم.
برای انجام این کار، فقط یک شیء شکل واحد ایجاد می کنیم و سپس دو نمودار متفاوت ایجاد می کنیم. را stripplot()
روی آن پوشانده خواهد شد boxplot()
، از آنجایی که آنها هستند روی همان axes
/figure
:
df = pd.DataFrame(data=dataframe, columns=("FFMC", "DMC", "DC", "ISI"))
boxplot = sns.boxplot(x="variable", y="value", data=pd.melt(df), order=("DC", "DMC", "FFMC", "ISI"))
boxplot = sns.stripplot(x="variable", y="value", data=pd.melt(df), marker="o", alpha=0.3, color="black", order=("DC", "DMC", "FFMC", "ISI"))
boxplot.axes.set_title("Distribution of Forest Fire Conditions", fontsize=16)
boxplot.set_xlabel("Conditions", fontsize=14)
boxplot.set_ylabel("Values", fontsize=14)
plt.show()
نتیجه
در این آموزش، ما چندین روش را برای ترسیم یک باکس پلات با استفاده از Seaborn و Python بررسی کردهایم. ما همچنین روش سفارشی کردن رنگها، برچسبها، سفارشدهی، و همچنین انبوه پلاتها و طرحهای فرعی چند جعبه را پوشش دادهایم.
اگر به تجسم دادهها علاقه دارید و نمیدانید از کجا شروع کنید، حتماً ما را بررسی کنید بسته کتاب روی تجسم داده ها در پایتون:
تجسم داده ها در پایتون با Matplotlib و Pandas کتابی است که طراحی شده است تا مبتدیان مطلق را با دانش پایه پایتون به Pandas و Matplotlib ببرد و به آنها اجازه دهد پایه ای قوی برای کار پیشرفته با این کتابخانه ها بسازند – از طرح های ساده گرفته تا طرح های سه بعدی متحرک با دکمه های تعاملی.
این به عنوان یک راهنمای عمیق عمل می کند که همه چیزهایی را که باید در مورد پانداها و Matplotlib بدانید، از جمله روش ساخت انواع طرح هایی که در خود کتابخانه تعبیه نشده اند را به شما آموزش می دهد.
تجسم داده ها در پایتون، کتابی برای توسعه دهندگان پایتون مبتدی تا متوسط، شما را در دستکاری ساده داده ها با پانداها راهنمایی می کند، کتابخانه های ترسیم هسته ای مانند Matplotlib و Seaborn را پوشش می دهد و به شما نشان می دهد که چگونه از کتابخانه های اعلامی و تجربی مانند Altair استفاده کنید. به طور خاص، در طول ۱۱ فصل، این کتاب ۹ کتابخانه پایتون را پوشش میدهد: Pandas، Matplotlib، Seaborn، Bokeh، Altair، Plotly، GGPlot، GeoPandas و VisPy.
این به عنوان یک راهنمای عملی و منحصر به فرد برای تجسم داده ها، در مجموعه ای از ابزارهایی که ممکن است در حرفه خود استفاده کنید، عمل می کند.
(برچسبها به ترجمه)# python
منتشر شده در 1403-01-12 22:49:03