در دنیای تحلیل داده و علم داده، رسم نمودار در پایتون یکی از مهمترین ابزارها برای درک بهتر اطلاعات و مصورسازی نتایج است. پایتون به عنوان یکی از پرکاربردترین زبانهای برنامهنویسی در این حوزه، مجموعهای از کتابخانههای قدرتمند را برای رسم نمودار در پایتون ارائه میدهد. از نمودارهای ساده خطی و میلهای گرفته تا نمودارهای تعاملی و پیشرفته، این ابزارها به کاربران کمک میکنند تا دادهها را به شکلی بصری و قابل تفسیر نمایش دهند.
مقدمه
کتابخانههایی مانند Matplotlib، Seaborn، Plotly و Bokeh از جمله محبوبترین گزینهها برای رسم نمودار در پایتون هستند. هر یک از این کتابخانهها ویژگیهای خاصی دارند که بسته به نوع دادهها و نیاز کاربر، میتوان از آنها استفاده کرد. Matplotlib به عنوان قدیمیترین و پرکاربردترین ابزار، امکان ترسیم نمودارهای پایهای را فراهم میکند، درحالیکه Seaborn برای تجزیهوتحلیل آماری دادهها مناسبتر است. Plotly و Bokeh امکان ایجاد نمودارهای تعاملی را فراهم میکنند که برای نمایش دادهها در صفحات وب بسیار کاربردی است. در این آموزش از سری مقاله های مجله پی استور شما را با رسم نمودار در پایتون با استفاده از Matplotlib آشنا میشوید، که شاید پرکاربردترین کتابخانه رسم و مصورسازی داده در پایتون باشد.
نصب Matplotlib در پایتون
سادهترین راه برای نصب Matplotlib استفاده از pip است. دستور زیر را در ترمینال وارد کنید:
pip install matplotlib
یا میتوانید Matplotlib را از اینجا دانلود کرده و بهصورت دستی نصب کنید.
رسم نمودار در پایتون
روشهای مختلفی برای رسم نمودار در پایتون وجود دارد. در اینجا برخی از روشهای رایج برای رسم نمودار با Matplotlib را بررسی میکنیم:
- رسم یک خط
- رسم دو یا چند خط در یک نمودار
- سفارشیسازی نمودارها
- رسم نمودار میلهای با Matplotlib
- رسم هیستوگرام با Matplotlib
- رسم نمودار پراکندگی با Matplotlib
- رسم نمودار دایرهای با Matplotlib
- رسم منحنیهای یک معادله دادهشده
1- رسم یک خط
در این مثال، کد از Matplotlib برای ایجاد یک نمودار خطی ساده استفاده میکند. مقادیر x و y برای نقاط داده تعریف شده، سپس با استفاده از ()plt.plot رسم میشوند. برچسبهای محور x و y با ()plt.xlabel و ()plt.ylabel تعیین میشوند. عنوان نمودار با ()plt.title روی «اولین نمودار من!» تنظیم میشود. در نهایت، تابع ()plt.show برای نمایش نمودار با دادههای مشخصشده، برچسبهای محورها و عنوان استفاده میشود.
# importing the required module
import matplotlib.pyplot as plt
# x axis values
x = [1,2,3]
# corresponding y axis values
y = [2,4,1]
# plotting the points
plt.plot(x, y)
# naming the x axis
plt.xlabel('x - axis')
# naming the y axis
plt.ylabel('y - axis')
# giving a title to my graph
plt.title('My first graph!')
# function to show the plot
plt.show()
خروجی:
2- رسم دو یا چند خط در یک نمودار
در این مثال، کد از Matplotlib برای ایجاد یک نمودار با دو خط استفاده میکند. دو مجموعه از مقادیر x و y برای هر خط تعریف میشود و با استفاده از ()plt.plot رسم میشود. خطوط با پارامتر label به نامهای «خط ۱» و «خط ۲» برچسبگذاری میشوند. محورها با ()plt.xlabel و ()plt.ylabel برچسبگذاری میشوند و عنوان نمودار با ()plt.title روی «دو خط در یک نمودار!» تنظیم میشود. افسانه «legend» با استفاده از ()plt.legend نمایش داده میشود و تابع ()plt.show برای مشاهده نمودار با هر دو خط و برچسبها استفاده میشود.
import matplotlib.pyplot as plt
# line 1 points
x1 = [1,2,3]
y1 = [2,4,1]
# plotting the line 1 points
plt.plot(x1, y1, label = "line 1")
# line 2 points
x2 = [1,2,3]
y2 = [4,1,3]
# plotting the line 2 points
plt.plot(x2, y2, label = "line 2")
# naming the x axis
plt.xlabel('x - axis')
# naming the y axis
plt.ylabel('y - axis')
# giving a title to my graph
plt.title('Two lines on same graph!')
# show a legend on the plot
plt.legend()
# function to show the plot
plt.show()
خروجی:
3- سفارشی سازی نمودارها
در این مثال، کد از Matplotlib برای ایجاد یک نمودار خطی سفارشی استفاده میکند. مقادیر x و y تعریف شده و نمودار با یک خط سبز نقطهچین، یک نشانگر دایرهای آبی برای هر نقطه و اندازه نشانگر ۱۲ سفارشیسازی میشود. محدودیتهای محور y بین ۱ و ۸ و محدودیتهای محور x نیز بین ۱ و ۸ با استفاده از ()plt.ylim و ()plt.xlim تنظیم میشود. محورها با ()plt.xlabel و ()plt.ylabel برچسبگذاری میشوند و عنوان نمودار با ()plt.title روی «برخی سفارشیسازیهای جالب!» قرار میگیرد.
import matplotlib.pyplot as plt
# x axis values
x = [1,2,3,4,5,6]
# corresponding y axis values
y = [2,4,1,5,2,6]
# plotting the points
plt.plot(x, y, color='green', linestyle='dashed', linewidth = 3,
marker='o', markerfacecolor='blue', markersize=12)
# setting x and y axis range
plt.ylim(1,8)
plt.xlim(1,8)
# naming the x axis
plt.xlabel('x - axis')
# naming the y axis
plt.ylabel('y - axis')
# giving a title to my graph
plt.title('Some cool customizations!')
# function to show the plot
plt.show()
خروجی:
4- رسم نمودار میله ای با Matplotlib
در این مثال، کد از Matplotlib برای ایجاد یک نمودار میلهای استفاده میکند. مختصات x (left)، ارتفاع میلهها (height) و برچسبهای میلهها (tick_label) تعریف میشود. سپس از تابع ()plt.bar برای رسم نمودار میلهای با پارامترهای مشخصشده مانند عرض میله، رنگها و برچسبها استفاده میشود. محورها با ()plt.xlabel و ()plt.ylabel برچسبگذاری میشوند و عنوان نمودار با ()plt.title روی «نمودار میلهای من!» قرار میگیرد.
import matplotlib.pyplot as plt
# x-coordinates of left sides of bars
left = [1, 2, 3, 4, 5]
# heights of bars
height = [10, 24, 36, 40, 5]
# labels for bars
tick_label = ['one', 'two', 'three', 'four', 'five']
# plotting a bar chart
plt.bar(left, height, tick_label = tick_label,
width = 0.8, color = ['red', 'green'])
# naming the x-axis
plt.xlabel('x - axis')
# naming the y-axis
plt.ylabel('y - axis')
# plot title
plt.title('My bar chart!')
# function to show the plot
plt.show()
خروجی:
5- رسم هیستوگرام با Matplotlib
در این مثال، کد از Matplotlib برای ایجاد یک هیستوگرام استفاده میکند. یک لیست از فرکانسهای سنی «ages» تعریف میشود، محدوده مقادیر از ۰ تا ۱۰۰ تنظیم میشود و تعداد بینهها به ۱۰ مشخص میشود. سپس از تابع ()plt.hist برای رسم هیستوگرام با دادهها و فرمتدهی مشخص شده، شامل رنگ، نوع هیستوگرام و عرض میلهها استفاده میشود. محورها با ()plt.xlabel و ()plt.ylabel برچسبگذاری میشوند و عنوان نمودار با ()plt.title روی «هیستوگرام من» قرار میگیرد.
import matplotlib.pyplot as plt
# frequencies
ages = [2,5,70,40,30,45,50,45,43,40,44,
60,7,13,57,18,90,77,32,21,20,40]
# setting the ranges and no. of intervals
range = (0, 100)
bins = 10
# plotting a histogram
plt.hist(ages, bins, range, color = 'green',
histtype = 'bar', rwidth = 0.8)
# x-axis label
plt.xlabel('age')
# frequency label
plt.ylabel('No. of people')
# plot title
plt.title('My histogram')
# function to show the plot
plt.show()
خروجی:
6- رسم نمودار پراکندگی با Matplotlib
در این مثال، کد از Matplotlib برای ایجاد یک نمودار پراکندگی استفاده میکند. مقادیر x و y تعریف شده و بهعنوان نقاط پراکندگی با نشانگرهای ستارهای سبز (*) با اندازه ۳۰ رسم میشوند. محورها با ()plt.xlabel و ()plt.ylabel برچسبگذاری میشوند و عنوان نمودار با ()plt.title روی «نمودار پراکندگی من!» قرار میگیرد. افسانه «legend» با برچسب «ستارهها» از طریق ()plt.legend نمایش داده میشود و در نهایت نمودار پراکندگی با استفاده از ()plt.show نمایش داده میشود.
import matplotlib.pyplot as plt
# x-axis values
x = [1,2,3,4,5,6,7,8,9,10]
# y-axis values
y = [2,4,5,7,6,8,9,11,12,12]
# plotting points as a scatter plot
plt.scatter(x, y, label= "stars", color= "green",
marker= "*", s=30)
# x-axis label
plt.xlabel('x - axis')
# frequency label
plt.ylabel('y - axis')
# plot title
plt.title('My scatter plot!')
# showing legend
plt.legend()
# function to show the plot
plt.show()
خروجی:
7- رسم نمودار دایره ای با Matplotlib
در این مثال، کد از Matplotlib برای ایجاد یک نمودار دایرهای استفاده میکند. برچسبهایی برای فعالیتهای مختلف «activities»، سهم هر برچسب «slices» و رنگها برای هر برچسب «colors» تعریف میشود. سپس از تابع ()plt.pie برای رسم نمودار دایرهای با گزینههای فرمتدهی مختلف، از جمله زاویه شروع، سایه، انفجار برای یک بخش خاص، شعاع و نمایش درصد با استفاده از autopct استفاده میشود. افسانه «legend» با ()plt.legend اضافه میشود و در نهایت نمودار دایرهای با استفاده از ()plt.show نمایش داده میشود.
import matplotlib.pyplot as plt
# defining labels
activities = ['eat', 'sleep', 'work', 'play']
# portion covered by each label
slices = [3, 7, 8, 6]
# color for each label
colors = ['r', 'y', 'g', 'b']
# plotting the pie chart
plt.pie(slices, labels = activities, colors=colors,
startangle=90, shadow = True, explode = (0, 0, 0.1, 0),
radius = 1.2, autopct = '%1.1f%%')
# plotting legend
plt.legend()
# showing the plot
plt.show()
خروجی:
8- رسم منحنی های یک معادله داده شده
در این مثال، کد از Matplotlib و NumPy برای ایجاد نمودار یک موج سینوسی استفاده میکند. مختصات x از ۰ تا ۲π در افزایشهای ۰.۱ با استفاده از ()np.arange تولید میشود و مختصات y با محاسبه سینوس هر مقدار x با استفاده از ()np.sin محاسبه میشود. سپس نقاط با استفاده از ()plt.plot رسم میشوند و نتیجه یک موج سینوسی خواهد بود. در نهایت، از تابع ()plt.show برای نمایش نمودار موج سینوسی استفاده میشود.
# importing the required modules import matplotlib.pyplot as plt import numpy as np # setting the x - coordinates x = np.arange(0, 2*(np.pi), 0.1) # setting the corresponding y - coordinates y = np.sin(x) # plotting the points plt.plot(x, y) # function to show the plot plt.show()
خروجی:
نتیجه گیری
رسم نمودار در پایتون یکی از ابزارهای کلیدی برای تحلیل و مصورسازی دادهها است. با استفاده از کتابخانههایی مانند Matplotlib، Seaborn، Plotly و Bokeh، میتوان نمودارهای متنوعی از جمله خطی، میلهای، پراکندگی، دایرهای و هیستوگرام ایجاد کرد. هر یک از این کتابخانهها ویژگیهای منحصربهفردی دارند که بسته به نیاز میتوان از آنها استفاده کرد. یادگیری و بهکارگیری روشهای مختلف رسم نمودار در پایتون، به درک بهتر دادهها و تصمیمگیریهای دقیقتر کمک میکند.
















