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

1109
رسم نمودار در پایتون با کتابخانه‌های Matplotlib و Seaborn

در دوره‌های آموزش پایتون و آموزش یادگیری عمیق، یکی از مباحثی که به‌صورت جامع تدریس می‌شود، رسم نمودار در پایتون است. نمودارها در این زبان برنامه‌نویسی همه‌کاره، یک نمایش تصویری متشکل از مجموعه‌ای از اشیاء هستند. در این ست‌ها، برخی از جفت اشیاء توسط پیوندها (Links) به یکدیگر متصل شده‌اند. 

در ادامه این مقاله از کوئرا بلاگ، به بررسی رسم نمودار در پایتون با کتابخانه های Matplotlib و Seaborn خواهیم پرداخت؛ چراکه نمودارها در این زبان برنامه‌نویسی، توسط این دو کتابخانه نوشته می‌شوند.

رسم نمودار در پایتون به چه معناست؟

تجسم داده‌ها تکنیکی است که به دانشمندان داده (Data Scientists) اجازه می‌دهد تا داده‌های خام را به گراف و دیاگرام تبدیل کنند. چنین تصاویری خواندن و درک داده‌ها را آسان‌تر می‌کنند. 

ابزارهای بدون کد (No-Code Tools) زیادی برای تجسم داده‌ها و رسم نمودار در پایتون وجود دارد؛ مانند Tableau، Power BI، ChartBlocksو…. اما با این حال، جایگزین بهتری برای هرکدام وجود دارد تا بتوان با کمک آن، کنترل کاملی روی این موضوع داشت. این جایگزین در صنعت تکنولوژی، زبان برنامه‌نویسی پایتون است.

استفاده از زبان پایتون برای رسم نمودار و تجسم داده‌ها نیاز به مهارت‌های برنامه‌نویسی دارد؛ اما آزادی کاملی هم ارائه می‌دهد. با استفاده از پایتون، می‌توانید تجسم داده‌ها را تغییر، تبدیل و ایجاد کنید. بسیاری از دانشمندان داده به‌دلیل همین آزادی کامل، به این راه‌حل روی آوردند.

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

بسیاری از کتابخانه‌های پایتون اجازه تغییر یا دست‌کاری داده‌ها را می‌دهند: Numpy، Pandas، Matplotlib، Tensorflow و….

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

بیشتر بخوانید: پایتون چیست؟ آشنایی با زبان برنامه‌نویسی Python

Matplotlib چیست؟

Matplotlib یک کتابخانه قدرتمند برای رسم نمودار در پایتون است که برای ایجاد انواع نمودارهای ثابت، متحرک و تعاملی استفاده می‌شود. هدف اصلی Matplotlib ارائه ابزارها و عملکرد به کاربران برای نمایش داده‌ها به‌صورت گرافیکی است تا تجزیه‌وتحلیل و درک هریک از آن‌‌ها آسان‌‌تر شود. 

این کتابخانه در ابتدا توسط John D. Hunter در سال 2003 توسعه یافت و اکنون توسط جامعه بزرگی از برنامه‌نویسان پایتون استفاده و نگهداری می‌شود.

ویژگی های کلیدی Matplotlib چه مواردی را شامل می‌شوند؟

ویژگی مهم کتابخانه Matplotlib را در ادامه لیست کرده‌ایم. این ویژگی‌ها برای هر برنامه‌نویسی اهمیت زیادی دارد. اما در کنار این موارد، مزایا و ویژگی‌های دیگری برای Matplotlib توسط متخصصان معرفی شده است که ما در این بخش، تنها به همین لیست اکتفا کردیم.

تطبیق‌پذیری

توسط Matplotlib می‌توانیم طیف گسترده‌ای از نمودارها از جمله نمودارهای خطی، نمودارهای پراکنده، نمودارهای میله‌ای، هیستوگرام‌ها، نمودارهای دایره‌ای و موارد دیگر را ترسیم کنیم.

سفارشی‌سازی

این کتابخانه گزینه‌های سفارشی‌سازی گسترده‌ای را برای کنترل هر جنبه‌ای از طرح، مانند سبک خط، رنگ‌ها، نشان‌گرها، برچسب‌ها و حاشیه‌نویسی ارائه می‌دهد.

هماهنگی با NumPy

Matplotlib به‌طور یک‌پارچه با NumPy ادغام می‌شود و رسم آرایه‌های داده به‌طور مستقیم را آسان می‌کند.

 کیفیت انتشار

Matplotlib طرح‌هایی با کیفیت بالا و مناسب برای انتشار با کنترل دقیق بر زیبایی‌شناسی طرح تولید می‌کند.

توسعه‌پذیر

Matplotlib بسیار توسعه‌پذیر است؛ زیرا با اکوسیستم بزرگی از ابزارها و امکانات افزودنی مانند Seaborn، توابع ترسیم Pandas، و Basemap برای ترسیم جغرافیایی ارائه شده است.

Cross-Platform

این کتابخانه رسم نمودار در پایتون مستقل از پلتفرم است و می‌تواند روی سیستم‌عامل‌های مختلف از جمله Windows، macOS و Linux اجرا شود.

نمودارهای تعاملی

Matplotlib از نمودارهای تعاملی از طریق استفاده از ویجت‌ها و مدیریت رویداد پشتیبانی می‌کند و کاربران را قادر می‌سازد تا داده‌ها را به‌صورت پویا کاوش کنند.

بیشتر بخوانید: 13 مورد از سوالات مصاحبه برنامه نویسی پایتون براساس سطح و حوزه

Seaborn چیست؟

درحالی‌که Matplotlib برای رسم نمودار در پایتون و تجسم داده‌ها بسیار محبوب است، استفاده از آن گاهی با پیچیدگی خاصی روبه‌رو می‌شود. بنابراین توسعه‌دهندگان سرتاسر دنیا یک کتابخانه جدید براساس Matplotlib ایجاد کردند: Seaborn.

Seaborn کتابخانه‌ای برای ترسیم گرافیک‌های آماری در پایتون است. این کتابخانه مبتنی‌بر Matplotlib است و با ساختارهای داده‌ای Pandas ادغام می‌شود.

این کتابخانه به‌اندازه Matplotlib قدرتمند است؛ اما سادگی و ویژگی‌های منحصربه‌فردی را به کاربران ارائه می‌دهد. یکی از مزایای کتابخانه Seaborn، کاوش و درک سریع داده‌ها است که آن را برای برنامه‌نویسان تازه‌کار جذاب می‌کند.

Seaborn تمام پیچیدگی‌های Matplotlib را از بین می‌برد. درعین‌حال، امکان رسم نمودار در پایتون را مطابق با تمام نیازها و اهداف توسعه‌دهنده فراهم می‌کند.

ویژگی های کلیدی Seaborn چه مواردی را شامل می‌شوند؟

Seaborn نقش یک مکمل را در کنار Matplotlib ایفا می‌کند و نه جایگزین آن. در این بخش ما به سراغ ویژگی‌‌های کلیدی کتابخانه Seaborn خواهیم رفت تا با بینش کامل‌تری این موضوع را درک کنیم.

  • تم‌های داخلی برای استایل‌دهی به گرافیک‌های ترسیم‌شده با Matplotlib
  • تجسم داده‌های تک متغیره و دو متغیره
  • برازش و تجسم مدل‌های رگرسیون خطی
  • رسم داده‌های آماری برای سری‌های زمانی 
  • ادغام و عملکرد یک‌پارچه با ساختارهای داده NumPy و Pandas 

جزئیات نمودار مناسب در پایتون چه چیزهایی هستند؟

برای رسم نمودار در پایتون باید برخی از نکات را رعایت کنید. حفظ این موارد در ترسیم یک گراف مناسب اهمیت دارند؛ زیرا خروجی دقیق‌تری ارائه خواهند داد. در ادامه این بخش، لیست نمودار مناسب در پایتون را آورده‌ایم.

  • نمودارها قابل تفکیک باشند و خطوط یا جزئیات آن‌ها روی هم‌دیگر قرار نگیرند؛
  • برای تفکیک بهتر هر نمودار، بهتر است هرکدام را با اشکال یا رنگ‌های متفاوت ترسیم کنید؛
  • توضیحات و راهنمای هر بخش از نمودار نوشته شود. این بخش‌ها شامل مقیاس‌ها، محورها، نمودارها و غیره هستند؛
  • ویژگی‌های هر نمودار را بشناسید تا بتوانید بهترین آن را برای هر گروه داده‌ای برگزینید.

بیشتر بخوانید: 12 زبان برنامه‌نویسی برتر که باید در سال 2024 یاد بگیرید + زبان‌های پرتقاضا تا 2030

انواع نمودار در پایتون 

در این بخش، انواع نمودار در پایتون را توضیح خواهیم داد تا بتوانید با شناخت هرکدام، نسبت‌به رسم بهترین گراف اقدام کنید.

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

import pandas as pd

import matplotlib.pyplot as plt

import seaborn as sns

​

penguins = sns.load_dataset('penguins')

flights = sns.load_dataset('flights')

titanic = sns.load_dataset('titanic')

car_crashes = sns.load_dataset('car_crashes')

fmri = sns.load_dataset('fmri')

diamonds = sns.load_dataset('diamonds')

برای هر نوع نمودار داده، نمونه اولیه آن را با سفارشی‌سازی حداقلی یا نزدیک به صفر ایجاد می‌کنیم تا نشان دهیم هر روش چگونه کار می‌کند. سپس یک عنوان مربوط به هر طرح را به آن اختصاص می‌دهیم تا معنادارتر به‌نظر برسد. برای بسیاری از مثال‌ها، باید داده‌ها را از قبل پردازش کنیم (که در کد به‌عنوان #Data preparation توضیح داده شده است.)

ازآنجایی‌که این مطلب را به رسم نمودار در پایتون اختصاص دادیم، مایل هستیم ادامه مبحث را با آموزش Matplotlib و Seaborn ادامه دهیم. لیست زیر متداول‌ترین نمودارها در پایتون هستند که در بخش بعد، هرکدام را با کتابخانه‌های مذکور ترسیم خواهیم کرد.

نمودار میله‌ای (Bar Chart)

 نمودار میله‌ای رایج‌ترین نمودار برای نمایش مقادیر عددی داده‌های طبقه‌بندی‌شده است. این نمودار بیشتر برای مقایسه دسته‌های مختلف به‌کار می‌رود. دسته‌ها با میله‌های مستطیلی با همان عرض و با ارتفاع (برای نمودارهای میله‌ای عمودی) یا طول (برای نمودارهای میله‌ای افقی) متناسب با مقادیر عددی که با آن‌ها مطابقت دارد، نشان داده می‌شوند.

رسم نمودار در پایتون برای نمودار میله‌ای

نمودار خطی (Line Plot)

نمودار خطی پیشروی یک متغیر را از چپ به راست در امتداد محور x از طریق نقاط داده متصل به بخش‌های خط مستقیم نشان می‌دهد. این نوع معمولا بهترین انتخاب برای نمایش تغییرات یک متغیر در طول زمان است. درواقع نمودارهای خطی اغلب برای تجسم سری‌های زمانی استفاده می‌شوند.

رسم نمودار در پایتون برای نمودار خطی

نمودار پراکندگی (Scatter plot)

نمودار پراکندگی روابط بین دو متغیر را به‌عنوان نقاط داده در صفحه مختصات نشان می‌دهد. این نوع نمودار داده برای بررسی اینکه آیا دو متغیر با یکدیگر همبستگی دارند یا خیر، این همبستگی چقدر قوی است و آیا خوشه‌های مجزا در داده‌ها وجود دارد استفاده می‌شود.

بیشتر بخوانید: آشنایی با Overfitting (بیش‌برازش) و Underfitting (کم‌برازش) در یادگیری ماشین

رسم نمودار در پایتون برای نمودار پراکندگی

نمودار هیستوگرام (Histogram)

هیستوگرام توزیع فراوانی مقادیر یک متغیر عددی را نشان می‌دهد. این نمودار در زیر Hood، داده‌ها را به گروه‌های ارزشمندی به‌نام bin تقسیم می‌کند، تعداد نقاط مربوط به هر bin را می‌شمارد و هر bin را به‌عنوان یک نوار عمودی با ارتفاع متناسب با مقدار شمارش برای آن bin نمایش می‌دهد. 

رسم نمودار در پایتون برای نمودار هیستوگرام

نمودار جعبه‌ای (Box Plot)

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

رسم نمودار در پایتون برای نمودار جعبه‌ای

نمودار دایره‌ای (Pie Chart)

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

رسم نمودار در پایتون برای نمودار دایره‌ای

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

مبحث آموزش رسم توابع در پایتون را ابتدا با کتابخانه Matplotlib شروع می‌کنیم؛ زیرا این کتابخانه، برای ایجاد نمودارها بسیار انعطاف‌پذیر و قابل‌تنظیم است. آموزش Matplotlib در این بخش روی ایجاد نمودارهای خطی، نمودارهای نواری و نمودارهای پراکنده تمرکز دارد. پیش از آموزش رسم نمودار با این کتابخانه، ابتدا دو مرحله تعیین مجموعه داده (Dataset) و Loading Matplotlib را خواهیم آموخت.

1. تعیین مجموعه داده در Matplotlib 

برای این آموزش، از قیمت‌های تاریخی شاخص داو جونز Industrial Average (DJIA) از 01-01-2022 تا 2022-12-31 استفاده خواهیم کرد.

فایل csv با نام HistoricalPrices.csv را با استفاده از کتابخانه pandas بارگذاری و اولین ردیف‌ها را با استفاده از متد ()head مشاهده می‌کنیم.

import pandas as pd

djia_data = pd.read_csv('HistoricalPrices.csv')

djia_data.head()
تعیین مجموعه داده در کتابخانه Matplotlib 

همان‌طور که در خروجی می‌بینید، داده‌ها شامل چهار ستون تاریخ (Date)، بازگشایی بازار سهام (Open)، بالاترین قیمت (High)، پایین‌ترین قیمت (Low) و بسته بودن بازار (Close) است. در ادامه توضیح مختصری در مورد هر متغیر آورده شده است.

  • Date: روزی که اطلاعات قیمت سهام نشان داده می‌شود.
  • Open: قیمت DJIA در ساعت 9:30 صبح به وقت شرقی هنگام باز شدن بازار سهام.
  • High: بالاترین قیمتی که DJIA در طول روز به آن رسیده است.
  • Low: کمترین قیمتی که DJIA در طول روز به آن رسیده است.
  • Close: قیمت DJIA زمانی که فعالیت بازار در ساعت 4:00 عصر به وقت شرقی متوقف شد.

به‌عنوان مرحله پاک‌سازی سریع، ما باید از متد ()rename در pandas استفاده کنیم؛ زیرا مجموعه داده‌ای که دانلود کردیم فضای اضافی در نام ستون‌ها دارد. 

djia_data = djia_data.rename(columns = {' Open': 'Open', ' High': 'High', ' Low': 'Low', ' Close': 'Close'})

همچنین اطمینان حاصل می‌کنیم که متغیر Date یک متغیر datetime است و براساس تاریخ به ترتیب صعودی مرتب می‌شود.

djia_data['Date'] = pd.to_datetime(djia_data['Date'])
djia_data = djia_data.sort_values(by = 'Date')

2. Loading Matplotlib

در مرحله بعد، باید pyplot Matplotlib را بارگذاری کنیم تا بتوانیم رسم نمودار در پایتون را ادامه دهیم. ماژول pyplot شامل تمام متدهای مرتبطی است که برای ایجاد نمودارها و استایل دادن به آن‌ها نیاز داریم. ما از نام مستعار plt استفاده خواهیم کرد. 

import matplotlib.pyplot as plt

import pandas as pd

import numpy as np

from datetime import datetime

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

3. رسم نمودارهای خطی

نمودارهای خطی یک نوع نمودار بسیار مهم در پایتون هستند؛ زیرا در نمایش داده‌های سری زمانی عملکرد بسیار خوبی دارند. در رسم این نمودار، اهمیت دادن به نحوه تغییر KPIها در طول زمان برای درک الگوهای موجود در داده‌ها بسیار موردتوجه است.

برای ترسیم یک Line Plot تک‌خطی، باید سه نکته مهم را درنظر بگیرید:

1. نحوه رسم نمودار خط ساده با یک خط را نشان دهید؛

2. مطمئن شوید که از ()plt.show استفاده کردید؛

3. توضیحات مختصری در مورد طرح ارائه دهید، از جمله تفسیر داده‌های آن.

برای ترسیم نمودار تک‌خطی در پایتون، می‌توانیم از متد ()plt.plot در Matplotlib استفاده کنیم. در این متد، آرگومان اول متغیر x و آرگومان دوم متغیر y در نمودار خطی ما خواهند بود. 

هر زمان که درحال ایجاد یک نمودار هستیم، باید مطمئن شویم که ()plt.show را فراخوانی کردیم تا نمودار ترسیم‌شده را بینیم. 

بیشتر بخوانید: 13 مورد از سوالات مصاحبه برنامه نویسی پایتون براساس سطح و حوزه

در این مثال، ما قیمت بسته شدن DJIA را در طول زمان به تصویر خواهیم کشید.

plt.plot(djia_data['Date'], djia_data['Close'])
plt.show()

ما می‌توانیم توسط این دو تابع، یک نمودار چندخطی را در Plot مشابه به تصویر بکشیم. برای انجام این کار کافیست ()plt.plot را قبل از تابع ()plt.show فراخوانی کنیم.

plt.plot(djia_data['Date'], djia_data['Open'])

plt.plot(djia_data['Date'], djia_data['Close'])

plt.show()
رسم نمودار در پایتون

4. افزودن Legend

اگر بخواهیم تشخیص دهیم که کدام خط نشان‌دهنده کدام ستون است، می‌توانیم یک Legend به کدهایمان اضافه کنیم. با این کار یک برچسب رنگی در گوشه نمودار ایجاد می‌شود. 

برای انجام آن هم ()plt.legend را می‌نویسیم و پارامترهای label به هر فراخوانی plt.plot() را انجام می‌دهیم.

plt.plot(djia_data['Date'], djia_data['Open'], label = 'Open')
plt.plot(djia_data['Date'], djia_data['Close'], label = 'Close')
plt.legend()
plt.show()
رسم نمودار در پایتون

5. ترسیم نمودار میله‌ای

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

برای انجام این بخش، داده‌ها را با استفاده از pandas در میانگین‌های ماهانه جمع می‌کنیم. این کار را به هدف مقایسه عملکرد ماهانه در طول سال 2022 برای DJIA انجام می‌دهیم. همچنین برای ترسیم نمودار این مثال، از شش ماه اول استفاده خواهیم کرد تا ترسیم را آسان‌تر کنیم.

# Import the calendar package

from calendar import month_name

# Order by months by chronological order

djia_data['Month'] = pd.Categorical(djia_data['Date'].dt.month_name(), month_name[1:])

# Group metrics by monthly averages

djia_monthly_mean = djia_data \

.groupby('Month') \

.mean() \

.reset_index()

djia_monthly_mean.head(6)

6. نمودارهای خطی-عمودی

رسم نمودار در پایتون برای ترسیم نمودارهای خطی-عمودی، با استفاده از متد ()plt.bar انجام خواهد شد. اولین آرگومان متغیر محور x (Month) و پارامتر ارتفاع محور y (Close) است. سپس ()plt.show را فراخوانی می‌کنیم تا نمودار خود را نشان دهیم.

plt.bar(djia_monthly_mean['Month'], height = djia_monthly_mean['Close'])
plt.show()
رسم نمودار در پایتون

7. نمودارهای خطی-افقی

برای ترسیم این نمودار باید دو شرط را پیاده کنید:

1. نحوه تعویض محورها را نشان دهید تا میله‌ها افقی باشند.

2. توضیحات مختصری در مورد طرح ارائه دهید، از جمله تفسیر شرایط.

معمولا با ترسیم نمودارهای خطی-افقی می‌توانیم تفسیر نمودار و خواندن برچسب‌ها را به شکل آسان‌تری نسبت‌به نمودارهای دیگر انجام دهیم.

برای رسم نمودار در پایتون در نوع Bar Chart، باید از متد ()plt.hbar به‌شکل زیر استفاده کنیم.

plt.barh(djia_monthly_mean_srtd['Month'], height = djia_monthly_mean_srtd['Close'])

plt.show()
رسم نمودار در پایتون

8. رسم نمودارهای پراکندگی

نمودارهای پراکندگی برای شناسایی روابط بین دو متغیر عددی بسیار مفید هستند. این نمودارها می‌توانند به شما این حس را بدهند که وقتی مقدار دیگری تغییر می‌کند، چه انتظاری از یک متغیر داشته باشید. همچنین این نوع نمودار می‌تواند در تصمیم شما برای استفاده از تکنیک‌های مدل‌سازی مختلف مانند رگرسیون خطی یا غیر خطی بسیار آموزنده باشد.

رسم نمودار پراکندگی ساده

مشابه سایر نمودارها، می‌توان با استفاده از ()pyplot.scatter یک نمودار پراکنده ایجاد کرد که در آن آرگومان اول متغیر محور x و آرگومان دوم متغیر محور y است. در این مثال، ما به رابطه بین قیمت‌ DJIA در زمان بازگشایی و بسته شدن بازار سهام نگاه خواهیم کرد.

plt.scatter(djia_data['Open'], djia_data['Close'])

plt.show()
رسم نمودار در پایتون

رسم نمودار پراکندگی با یک خط ترند

در رسم نمودار پراکندگی ساده، یک خط روند به نمودار اضافه می‌کنیم تا رابطه خطی بین متغیرهای باز و بسته را واضح‌تر نشان دهیم. برای این کار از متد ()numpy polyfit و ()poly1d استفاده می‌کنیم. 

روش اول برازش چند جمله‌ای حداقل مربعات را به ما می‍‌دهد که در آن آرگومان اول متغیر x، متغیر دوم متغیر y و متغیر سوم درجات برازش (درجه یک برای خطی) است. 

روش دوم یک کلاس چندجمله‌ای یک‌بعدی به ما می‌دهد که می‌توانیم از آن برای ایجاد خط روند با استفاده از ()plt.plot استفاده کنیم.

z = np.polyfit(djia_data['Open'], djia_data['Close'], 1)

p = np.poly1d(z)

plt.scatter(djia_data['Open'], djia_data['Close'])

plt.plot(djia_data['Open'], p(djia_data['Open']))

plt.show()
رسم نمودار در پایتون

رسم نمودار در پایتون با کتابخانه Seaborn 

هنگامی که در محیطی کار می‌کنید که تجزیه‌وتحلیل داده‌های اکتشافی هدف اصلی شما است و نیاز به طرح‌های ازپیش‌آماده دارید، کتابخانه Seaborn گزینه بهتری نسبت‌به Matplotlib خواهد بود.

در این بخش، به آموزش Seaborn و رسم نمودار در پایتون با این کتابخانه خواهیم پرداخت. برای شروع، ابتدا باید نسخه پایتون 3.7 و بالاتر را نصب کنید؛ زیرا فقط این نسخه از Python از  Seaborn پشتیبانی می‌کند و وابستگی‌های اصلی بسیار کمی دارد. نصب Seaborn بسیار ساده است و می‌توانید آن را با Python’s pip manager یا conda package manager نصب کنید.

Seaborn طیف گسترده‌ای از انواع پلات را ارائه می‌دهد که هرکدام می‌توانند برای ترسیم داده‌ها و تجزیه‌وتحلیل اطلاعات اکتشافی استفاده شوند. به‌طورکلی، هر تصویرسازی می‌تواند در یکی از سه دسته زیر قرار بگیرد:

1. تک متغیره – فقط x (فقط شامل یک محور اطلاعات است)؛

2. دو متغیره – x و y (شامل دو محور اطلاعات است)؛

3. سه متغیره – x، y، z (شامل سه محور اطلاعات است).

رسم نمودار در پایتون

ترسیم انواع نمودار در کتابخانه Seaborn، با نوشتن توابع زیر انجام می‌شود:

  • نمودار پراکندگی: ()scatterplot
  • نمودار خطی: ()lineplot 
  • هیستوگرام: ()histplot 
  • نمودار جعبه: ()boxplot 
  • نقشه حرارت یا Heat Map: ()heatmap Seaborn 

بیشتر بخوانید: نصب پایتون در ویندوز، لینوکس و مک + ویدیو آموزشی

تعیین مجموعه داده در Seaborn 

Seaborn چندین مجموعه داده داخلی ارائه می‌دهد که می‌توانیم برای ترسیم داده‌ها و تجزیه‌و‍تحلیل آماری آن‌ها استفاده کنیم. این مجموعه داده‌ها در قالب‌های pandas dataframes ذخیره می‌شوند و استفاده از آن‌ها را با توابع ترسیم Seaborn آسان می‌کنند.

یکی از متداول‌ترین مجموعه داده‌هایی که در تمام نمونه‌های رسمی Seaborn هم استفاده می‌شود، «Tips Dataset» نام دارد. این پکیج شامل اطلاعاتی در مورد نکات مربوط به رستوران‌ها است. در اینجا نمونه ای از بارگیری و تجسم مجموعه داده Tips در Seaborn آورده شده است:

import seaborn as sns

# Load the Tips dataset

tips = sns.load_dataset("tips")

# Create a histogram of the total bill amounts

sns.histplot(data=tips, x="total_bill")
رسم نمودار در پایتون

1. رسم نمودار پراکندگی

نمودار پراکندگی برای تجسم رابطه بین دو متغیر پیوسته استفاده می‌شود. هر نقطه در نمودار نشان‌دهنده یک نقطه داده واحد است و موقعیت نقطه در محور x و y مقادیر دو متغیر را نشان می‌دهد.

طرح ترسیم‌شده در کتابخانه Seaborn را می‌توان با رنگ‌ها و نشان‌گرهای مختلف سفارشی کرد تا به تشخیص گروه‌های مختلف نقاط داده کمک کند. در Seaborn می‌توان با استفاده از تابع ()scatterplot نمودارهای پراکندگی ایجاد کرد.

import seaborn as sns

tips = sns.load_dataset("tips")

sns.scatterplot(x="total_bill", y="tip", data=tips)
رسم نمودار در پایتون

2. رسم نمودار خطی

نمودارهای خطی برای ترسیم روند داده‌ها در طول زمان یا سایر متغیرهای پیوسته استفاده می‌شوند. در یک نمودار خطی، هر نقطه داده توسط یک خط به هم متصل می شود و یک منحنی صاف ایجاد می‍‌کند. 

import seaborn as sns

fmri = sns.load_dataset("fmri")

sns.lineplot(x="timepoint", y="signal", data=fmri)
رسم نمودار در پایتون

3. ترسیم نمودار میله‌ای

نمودارهای میله‌ای برای ترسیم رابطه بین یک متغیر طبقه‌ای و متغیر پیوسته استفاده می‌شود. در نمودار میله‌ای، هر نوار نشان‌دهنده میانگین یا میانه (یا هر تجمع) متغیر پیوسته برای هر دسته است. 

import seaborn as sns

titanic = sns.load_dataset("titanic")

sns.barplot(x="class", y="fare", data=titanic)

4. ترسیم هیستوگرام 

هیستوگرام‌ها توزیع یک متغیر پیوسته را به تصویر می‌کشند. در یک هیستوگرام، داده‌ها به binها تقسیم می‌شوند. ارتفاع هر bin نشان‌دهنده فراوانی یا تعداد نقاط داده در آن bin است. 

import seaborn as sns

iris = sns.load_dataset("iris")

sns.histplot(x="petal_length", data=iris)
رسم نمودار در پایتون

5. رسم نمودار جعبه‌ای

نمودارهای جعبه‌ای نوعی تصویرسازی هستند که توزیع یک مجموعه داده را نشان می‌دهند. آن‌ها معمولا برای مقایسه توزیع یک یا چند متغیر در دسته‌های مختلف استفاده می‌شوند.

import seaborn as sns
tips = sns.load_dataset("tips")
sns.boxplot(x="day", y="total_bill", data=tips)
رسم نمودار در پایتون

6. ترسیم هیت‌مپ

نقشه حرارتی یک نمایش گرافیکی از داده‌ها است که از رنگ‌ها برای نشان دادن مقدار یک متغیر در فضای دوبعدی استفاده می‌کند. نقشه‌های حرارتی معمولا برای تجسم همبستگی بین متغیرهای مختلف در یک مجموعه داده استفاده می‌شوند.

import seaborn as sns

import matplotlib.pyplot as plt

# Load the dataset

tips = sns.load_dataset('tips')

# Create a heatmap of the correlation between variables

corr = tips.corr()

sns.heatmap(corr)

# Show the plot

plt.show()
رسم نمودار در پایتون

آنچه در رسم نمودار در پایتون به‌همراه آموزش کتابخانه Matplotlib و Seaborn آموختیم

رسم نمودار در پایتون با دو کتابخانه Matplotlib و Seaborn بسیار متداول است. هرکدام از این کتابخانه‌ها ویژگی‌ها و کاستی‌های خود را دارند؛ به‌طورمثال، با فراگیری آموزش Matplotlib، می‌توانید نمودارهای پیچیده را ترسیم کنید؛ اما شرکت در کلاس‌های آموزش Seaborn، به شما ترسیم نمودار و پلات به‌روشی ساده و سریع را خواهد آموخت.

در رسم نمودار با پایتون، مهم است که نوع نمودار مناسب را برای داده‌های خود انتخاب کنید تا به‌طور موثر، یافته‌های خودتان را به مخاطبان انتقال دهید. برای مثال، نمودار پراکندگی برای ترسیم رابطه بین دو متغیر پیوسته مناسب‌تر است؛ درحالی‌که نمودار میله‌ای برای تجسم داده‌های طبقه‌بندی‌شده انتخاب بهتری نسبت‌به سایر نمودارها است.

سوالات متداولی که شما می‌پرسید

1. چگونه به رسم نمودار در پایتون بپردازیم؟

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

2. چند نوع نمودار در پایتون داریم؟

انواع نمودار در پایتون عبارتند از نمودار خطی، میله‌ای، هیستوگرام، پراکندگی و غیره که بسته به نیاز و هدف برنامه‌نویسی، هرکدام مزایا و معایب منحصربه‌فرد خود را دارند.

3. کدام کتابخانه پایتون برای رسم نمودار بهتر است؟ Matplotlib یا Seaborn؟

تطبیق‌پذیری و سفارشی‌سازی از مهم‌ترین ویژگی‌های کتابخانه Matplotlib هستند؛ درحالی‌که تم‌های داخلی برای استایل‌دهی به گرافیک‌های ترسیم‌شده با Matplotlib و برازش و تجسم مدل‌های رگرسیون خطی از بارزترین ویژگی‌های کتابخانه Seaborn هستند. 

آموزش برنامه نویسی با کوئرا کالج
نگین فاتحی

از اسفند 99 مشغول گشت‌وگذار در دنیای کلمات هستم؛ با این هدف که خوب بنویسم و این چشم‌انداز که کمک‌های موثری کنم. بعداز گذشت سه‌ سال و مطالعه زیاد در زمینه‌های گوناگون بازاریابی آنلاین ازجمله رفتارشناسی مخاطب آنلاین، حالا تلاش می‌کنم محتوایی بنویسم که شما بخونی، لُب‌کلام رو متوجه بشی، لذت ببری و با دست پر صفحه رو ترک کنی؛ شایدم بقیه نوشته‌هام رو بخونی :)

اشتراک در
اطلاع از
guest

0 دیدگاه‌
قدیمی‌ترین
تازه‌ترین بیشترین واکنش
بازخورد (Feedback) های اینلاین
View all comments