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

سرور مجازی NVMe

نمودار هیستوگرام Matplotlib – آموزش و مثال

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


معرفی

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 ویژگی. به‌طور پیش‌فرض، این تعداد رخدادهای این سال‌ها را شمارش می‌کند، نوارها را در محدوده‌ها پر می‌کند و هیستوگرام را رسم می‌کند.

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

آموزش نمودار هیستوگرام ساده matplotlib

اینجا، فیلم سطل زباله (محدوده ها) روی 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.

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

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

به جای یک لیست، می توانید یک تک ارائه دهید 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 سطل مساوی می شود که داده های درون آن سطل ها ادغام شده و در نوارهای مربوطه به نمایش در می آیند:

اندازه بن هیستوگرام را به طور یکنواخت در matplotlib تغییر دهید

با در نظر گرفتن 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()

اکنون، به جای شمارشی که قبلاً دیده‌ایم، تراکم ورودی‌ها به ما نشان داده می‌شود:

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

می بینیم که 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 – آیا طرح باید قرار داده شود روی مقیاس لگاریتمی یا نه

این در حال حاضر منجر به:

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

از آنجایی که ما قرار داده ایم 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

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

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

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