احسان جلیلی
احسان جلیلی
خواندن ۱ دقیقه·۴ سال پیش

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

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


پیشنهاد می شود برای آشنایی بیشتر در صورت تمایل قبل از خواندن ادامه مطلب مقاله های زیر را مطالعه نمایید.

آشنایی با ترسیم داده ها (رسم نمودار) در پایتون

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


وارد کردن مجموعه داده (Importing Datasets)

import pandas as pd iris = pd.read_csv('iris.csv', names=['sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'class']) wine_reviews = pd.read_csv('winemag-data-130k-v2.csv', index_col=0)


نمودار جعبه ای (Boxplot)

نمودار جعبه‌ای یک روش استاندارد برای نمایش توزیع داده‌ها است که براساس شاخص‌های آماری «کوچکترین مقدار» (Minimum)، «چارک اول» (First Quartile -Q1)، «میانه» (Median)، «چارک سوم» (Third Quartile- Q3) و «بزرگترین مقدار» (Maximum) ساخته شده است. همچنین این نمودار می‌تواند در مورد وجود داده‌های پرت (Outlier)، اطلاعاتی خوبی ارائه نماید و مقدار آن‌ها را تعیین کند. ما می توانیم با استفاده از تابع boxplot این نمودار را رسم نماییم.

df = wine_reviews[(wine_reviews['points']>=95) & (wine_reviews['price']<1000)] sns.boxplot('points', 'price', data=df)
نمودار جعبه ای (Boxplot)
نمودار جعبه ای (Boxplot)


نمودار حرارتی (Heat map)
نمودار حرارتی Heat Map یا نقشه رنگی یک نوع تصویرسازی از اطلاعات است که در آن مقدار هر خانه از ماتریس ورودی با یک رنگ نمایش داده‌می‌شود. این نمودار برای نشان دادن همبستگی ویژگی ها در یک مجموعه داده مناسب می باشد.
در اینجا از کتابخانه های Matplotlib و Seaborn برای ایجاد نمودار حرارتی استفاده نموده ایم.

import numpy as np import matplotlib.pyplot as plt # get correlation matrix corr = iris.corr() fig, ax = plt.subplots() # create heatmap im = ax.imshow(corr.values) # set labels ax.set_xticks(np.arange(len(corr.columns))) ax.set_yticks(np.arange(len(corr.columns))) ax.set_xticklabels(corr.columns) ax.set_yticklabels(corr.columns) # Rotate the tick labels and set their alignment. plt.setp(ax.get_xticklabels(), rotation=45, ha=&quotright&quot, rotation_mode=&quotanchor&quot) # Loop over data dimensions and create text annotations. for i in range(len(corr.columns)): for j in range(len(corr.columns)): text = ax.text(j, i, np.around(corr.iloc[i, j], decimals=2), ha=&quotcenter&quot, va=&quotcenter&quot, color=&quotblack&quot)
نمودار حرارتی (Heat map) با Matplotlib
نمودار حرارتی (Heat map) با Matplotlib


sns.heatmap(iris.corr(), annot=True)
نمودار حرارتی (Heat map) با Seaborn
نمودار حرارتی (Heat map) با Seaborn


نمودار Faceting
عمل Faceting شکستن تغییرات داده ها در چند نمودار فرعی و ترکیب آن ها به یک شکل واحد است. اگر می خواهید داده ها را در یک نما مشاهده نمایید، Faceting بسیار مفید است. برای استفاده از این رورش باید از تابع FacetGrid استفاده کنیم. مقادیر مجموعه داده و ستون کلاس داده ها را برای تفکیک نمودارها به تابع معرفی می کنیم. سپس باید تابع g.map با تعیین نوع نموداری که می خواهیم نمایش داده شود، را فراخوانی نماییم.

g = sns.FacetGrid(iris, col='class') g = g.map(sns.kdeplot, 'sepal_length')
نمودار Faceting
نمودار Faceting


نمودار جفتی (Pair Plot)

نمودار جفتی با تابع pairplot در کتابخانه Seaborn قابل رسم می باشد. این مجموعه نمودار این امکان را می دهند تا شبکه ای از روابط زوج متغییر را در یک مجموعه داده نمایش دهیم. همانطور که در تصاویر مشاهده می کنید، این روش همواره دو ویژگی را با یکدیگر رسم می نماید. در قطر تصویر نمودار هیستوگرام جهت نمایش پراکندگی داده نمایان می باشد.

sns.pairplot(iris)
نمودار جفتی (Pair Plot)
نمودار جفتی (Pair Plot)


نمودار جفتی را می توان با تابع scatter_matrix در کتابخانه pandas نیز بصورت زیر رسم نمایید.

from pandas.plotting import scatter_matrix fig, ax = plt.subplots(figsize=(12,12)) scatter_matrix(iris, alpha=1, ax=ax)
نمودار جفتی (Pair Plot) با pandas
نمودار جفتی (Pair Plot) با pandas


امیدوارم این مقاله مفید بوده باشد.

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