از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
نمودار هیستوگرام Matplotlib – آموزش و مثال
سرفصلهای مطلب
معرفی
Matplotlib یکی از پرکاربردترین کتابخانه های تجسم داده در پایتون است. از تجسم های ساده گرفته تا پیچیده، این کتابخانه برای بیشتر افراد است.
در این آموزش، روش انجام این کار را بررسی خواهیم کرد رسم نمودار هیستوگرام در Matplotlib. نمودارهای هیستوگرام یک راه عالی برای تجسم توزیع داده ها هستند – در یک هیستوگرام، هر نوار اعداد را در محدوده گروه بندی می کند. نوارهای بلندتر نشان می دهد که داده های بیشتری در آن محدوده قرار می گیرند.
یک هیستوگرام شکل و گسترش داده های نمونه پیوسته را نشان می دهد.
وارد کردن داده ها
ما از نمایش های نتفلیکس مجموعه داده و تجسم توزیع ها از آنجا.
اجازه دهید import پانداها و بارگذاری در مجموعه داده:
import pandas as pd
df = pd.read_csv('netflix_titles.csv')
رسم نمودار هیستوگرام در Matplotlib
اکنون، با مجموعه داده بارگیری شده، اجازه دهید import ماژول PyPlot Matplotlib و تجسم توزیع آن release_year
از برنامه هایی که زنده هستند روی نتفلیکس:
import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_csv('netflix_titles.csv')
plt.hist(df('release_year'))
plt.show()
در اینجا، ما یک سناریوی تنظیم حداقل داریم. ما داده ها را در یک DataFrame بارگذاری می کنیم (df
، سپس، از نمونه PyPlot استفاده می کنیم و آن را فراخوانی می کنیم hist()
تابع رسم هیستوگرام برای release_year
ویژگی. بهطور پیشفرض، این تعداد رخدادهای این سالها را شمارش میکند، نوارها را در محدودهها پر میکند و هیستوگرام را رسم میکند.
اجرای این کد نتیجه می دهد:
اینجا، فیلم سطل زباله (محدوده ها) روی 10 سال تنظیم شده است. هر نوار در اینجا شامل همه نمایش ها/فیلم ها در دسته های 10 ساله است. برای مثال، میتوانیم ببینیم که حدود 750 نمایش بین سالهای 2000 و 2010 منتشر شد. در همان زمان، حدود 5000 نمایش بین سالهای 2010 و 2020 منتشر شد.
اینها محدوده های بسیار بزرگی برای صنعت فیلم هستند، منطقی تر است که این را برای محدوده های کوچکتر از 10 سال تجسم کنیم.
هیستوگرام Bin Size را در Matplotlib تغییر دهید
بگویید، بیایید یک نمودار هیستوگرام (توزیع) را در دسته های 1 ساله مجسم کنیم، زیرا این یک چارچوب زمانی بسیار واقعی تر برای انتشار فیلم و نمایش است.
خوب import numpy
، زیرا به ما کمک می کند اندازه سطل ها را محاسبه کنیم:
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
df = pd.read_csv('netflix_titles.csv')
data = df('release_year')
plt.hist(data, bins=np.arange(min(data), max(data) + 1, 1))
plt.show()
این بار، ما ستون DataFrame را به شکل یک استخراج کردیم data
متغیر، فقط برای اینکه کار با آن کمی آسان تر شود.
ما گذشتیم data
به hist()
تابع، و تنظیم کنید bins
بحث و جدل. فهرستی را میپذیرد که در صورت تمایل میتوانید آن را بهصورت دستی تنظیم کنید، بهویژه اگر میخواهید توزیع بن غیریکنواختی داشته باشید.
از آنجایی که میخواهیم این ورودیها را در یک بازه زمانی (1 سال) جمع کنیم، یک آرایه NumPy ایجاد میکنیم که با کمترین مقدار شروع میشود (min(data)
، به بالاترین مقدار (max(data)
) و با افزایش از 1
.
این بار اجرای این کد به این نتیجه می رسد:
به جای یک لیست، می توانید یک تک ارائه دهید bins
ارزش. این تعداد کل خواهد بود bins
در طرح استفاده کردن 1
منجر به 1 نوار برای کل طرح می شود.
بگویید، ما می خواهیم 20 سطل داشته باشیم، از این موارد استفاده می کنیم:
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
df = pd.read_csv('netflix_titles.csv')
data = df('release_year')
plt.hist(data, bins=20)
plt.show()
این منجر به 20 سطل مساوی می شود که داده های درون آن سطل ها ادغام شده و در نوارهای مربوطه به نمایش در می آیند:
با در نظر گرفتن 100 سال ارزش داده، این نتیجه در فواصل 5 ساله است. تقسیم آن در 20 سطل به این معنی است که هر کدام شامل 5 سال داده است.
نمودار هیستوگرام با چگالی
گاهی اوقات، به جای شمارش ویژگیها، میخواهیم چگالی هر نوار/سطل را بررسی کنیم. یعنی مشاهده یک محدوده در یک مجموعه داده مشخص چقدر رایج است. از آنجایی که ما با فواصل 1 ساله کار می کنیم، این احتمال می رود که یک فیلم/نمایش در آن سال اکران شود.
برای انجام این کار، ما به سادگی می توانیم تنظیم کنیم density
استدلال به True
:
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
df = pd.read_csv('netflix_titles.csv')
data = df('release_year')
bins = np.arange(min(data), max(data) + 1, 1)
plt.hist(data, bins=bins, density=True)
plt.ylabel('Density')
plt.xlabel('Year')
plt.show()
اکنون، به جای شمارشی که قبلاً دیدهایم، تراکم ورودیها به ما نشان داده میشود:
می بینیم که 18 درصد از ورودی ها در سال 2018 منتشر شده اند و پس از آن 14 درصد در سال 2019 منتشر شده است.
سفارشی کردن نمودارهای هیستوگرام در Matplotlib
به غیر از این تنظیمات، تعداد زیادی آرگومان مختلف وجود دارد که می توانید برای سفارشی کردن و تغییر شکل طرح خود تنظیم کنید. بیایید چند گزینه متداول را که مردم دوست دارند برای تغییر طرح ها به سلیقه خود تغییر دهند، تغییر دهیم:
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
df = pd.read_csv('netflix_titles.csv')
data = df('release_year')
bins = np.arange(min(data), max(data) + 1, 1)
plt.hist(data, bins=bins, density=True, histtype='step', alpha=0.5, align='right', orientation='horizontal', log=True)
plt.show()
در اینجا، ما استدلال های مختلفی را تنظیم کرده ایم:
bins
– تعداد سطل های موجود در قطعهdensity
– آیا PyPlot از تعداد یا تراکم برای پر کردن طرح استفاده می کندhisttype
– نوع نمودار هیستوگرام (پیش فرض استbar
، اگرچه مقادیر دیگری مانندstep
یاstepfilled
در دسترس هستند)alpha
– آلفا/شفاف بودن خطوطalign
– میلهها در کدام سمت سطلها قرار دارند، پیشفرض استmid
orientation
– جهت افقی/عمودی، پیش فرض استvertical
log
– آیا طرح باید قرار داده شود روی مقیاس لگاریتمی یا نه
این در حال حاضر منجر به:
از آنجایی که ما قرار داده ایم align
به right
، می بینیم که نوار در سمت راست عمودی مقداری افست شده است 2020 صندوقچه.
نتیجه
در این آموزش، ما چندین روش برای رسم هیستوگرام با استفاده از Matplotlib و Python را بررسی کرده ایم.
اگر به تجسم دادهها علاقه دارید و نمیدانید از کجا شروع کنید، حتماً ما را بررسی کنید بسته کتاب روی تجسم داده ها در پایتون:
تجسم داده ها در پایتون با Matplotlib و Pandas کتابی است که طراحی شده است تا مبتدیان مطلق را با دانش پایه پایتون به Pandas و Matplotlib ببرد و به آنها اجازه دهد پایه ای قوی برای کار پیشرفته با این کتابخانه ها بسازند – از طرح های ساده گرفته تا طرح های سه بعدی متحرک با دکمه های تعاملی.
این به عنوان یک راهنمای عمیق عمل می کند که همه چیزهایی را که باید در مورد پانداها و Matplotlib بدانید، از جمله روش ساخت انواع طرح هایی که در خود کتابخانه تعبیه نشده اند را به شما آموزش می دهد.
تجسم داده ها در پایتون، کتابی برای توسعه دهندگان پایتون مبتدی تا متوسط، شما را در دستکاری ساده داده ها با پانداها راهنمایی می کند، کتابخانه های ترسیم هسته ای مانند Matplotlib و Seaborn را پوشش می دهد و به شما نشان می دهد که چگونه از کتابخانه های اعلامی و تجربی مانند Altair استفاده کنید. به طور خاص، در طول ۱۱ فصل، این کتاب ۹ کتابخانه پایتون را پوشش میدهد: Pandas، Matplotlib، Seaborn، Bokeh، Altair، Plotly، GGPlot، GeoPandas و VisPy.
این به عنوان یک راهنمای عملی و منحصر به فرد برای تجسم داده ها، در مجموعه ای از ابزارهایی که ممکن است در حرفه خود استفاده کنید، عمل می کند.
(برچسبها به ترجمه)# python
منتشر شده در 1403-01-14 10:56:03