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

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

ترسیم و تجسم داده ها و اطلاعات، تلاش برای ایجاد نظم و انضباط دیداری در راستای درک بهتر الگوها، روندها و همبستگی بین داده ها می باشد. شناسایی ویژگی های داده ممکن است به روش های دیگر قابل کشف نباشند. زبان برنامه نویسی #پایتون چندین کتابخانه گرافیکی عالی با ویژگی های گوناگون را ارائه می نماید. اگر می خواهید یک نمایش تعاملی، پویا و بسیار سفارشی از داده ها ایجاد کنید، پایتون کتابخانه های بسیار کاربردی را برای این منظور فراهم نموده است.

کتابخانه Seaborn
کتابخانه Seaborn


در اینجا برخی از محبوب ترین کتابخانه های گرافیکی پایتون برای آشنایی معرفی می شوند.

کتابخانه Matplotlib: رابط کاربری سطح پایین با انعطاف بالا
کتابخانه Pandas Visualization: رابط کاربری آسان، ساخته شده در Matplotlib
کتابخانه Seaborn: رابط کاربری سطح بالا ، سبک های پیش فرض عالی
کتابخانه Plotly: رابط کاربری سطح بالا، امکان ارتباط تعاملی

در مقاله قبل در مورد کتابخانه Matplotlib بحث کردیم در این مقاله با کتابخانه Seaborn آشنا خواهیم شد.

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

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

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

import pandas as pd iris = pd.read_csv('iris.csv', names=['sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'class']) print(iris.head())
Iris Dataset head
Iris Dataset head


کتابخانه Seaborn

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

این کتابخانه را به روش زیر می توانیم در زبان برنامه نویسی پایتون وارد نماییم.

import seaborn as sns


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

با استفاده از تابع scatterplot می توانیم نمودار پراکندگی را ایجاد نماییم. برای رسم نمودار نیاز هست که نام سطر و ستون x و y را نیز تعیین نماییم. بعلاوه مقادیر داده ها را نیز به عنوان یک آرگومان اضافی به تابع انتقال دهیم.

sns.scatterplot(x='sepal_length', y='sepal_width', data=iris)
نمودار پراکندگی (Scatter Plot)
نمودار پراکندگی (Scatter Plot)


همچنین می توانیم با استفاده از آرگومان hue، نقاط را براساس کلاس بصورت رنگی برجسته نماییم، که این عمل بسیار راحت تر از کتابخانه Matplotlib انجام می گردد.

sns.scatterplot(x='sepal_length', y='sepal_width', hue='class', data=iris)
نمودار پراکندگی (Scatter Plot) رنگ شده براساس کلاس
نمودار پراکندگی (Scatter Plot) رنگ شده براساس کلاس


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

برای ایجاد نمودار خطی از تابع lineplot استفاده می نماییم. تنها آرگومان مورد نیاز مقدار داده ها است که در مورد مثال این مقاله چهار ستون عددی از مجموعه داده های Iris هستند.

sns.lineplot(data=iris.drop(['class'], axis=1))
نمودار خطی (Line Chart)
نمودار خطی (Line Chart)

همچنین می توانیم از تابع kdeplot استفاده کنیم که لبه های منحنی ها را گرد نماید. بنابراین اگر تعداد زیادی داده نویز داشته باشیم نمودار خطی مناسب تری از نظر بصری ایجاد می نماید.

sns.lineplot(data=iris.drop(['class'], axis=1))


برای ادامه این مقاله از یک دیتاست دیگر استفاده می کنیم.

wine_reviews = pd.read_csv('winemag-data-130k-v2.csv', index_col=0) wine_reviews.head()


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

برای ایجاد هیستوگرام از تابع distplot استفاده می کنیم. ما باید ستونی را که می خواهیم ترسیم کنیم، را به تابع ارسال کنیم تا تابع روی مقادیر داده ها محاسبات فراوانی بصورت گروهبندی شده را انجام دهد. همچنین می توانیم تعداد بازه های مورد نیاز را تعیین نمایییم و اگر بخواهیم تخمین تراکم هسته گاوسی را در داخل نمودار ترسیم کنیم.

sns.distplot(wine_reviews['points'], bins=10, kde=False)
نمودار هیستوگرام (Histogram)
نمودار هیستوگرام (Histogram)
sns.distplot(wine_reviews['points'], bins=10, kde=True)
نمودار هیستوگرام (Histogram)
نمودار هیستوگرام (Histogram)

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

برای رسم نمودار میله ای از تابع countplot استفاده می کنیم و فقط کافی است که داده مورد نظر را به تابع ارسال نماییم.

sns.countplot(wine_reviews['points'])
نمودار میله ای (Bar Chart)
نمودار میله ای (Bar Chart)



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