در دنیای تحلیل داده و علم داده، رسم نمودار در پایتون یکی از مهمترین ابزارها برای درک بهتر اطلاعات و مصورسازی نتایج است. پایتون به عنوان یکی از پرکاربردترین زبانهای برنامهنویسی در این حوزه، مجموعهای از کتابخانههای قدرتمند را برای رسم نمودار در پایتون ارائه میدهد. از نمودارهای ساده خطی و میلهای گرفته تا نمودارهای تعاملی و پیشرفته، این ابزارها به کاربران کمک میکنند تا دادهها را به شکلی بصری و قابل تفسیر نمایش دهند.
مقدمه
کتابخانههایی مانند Matplotlib، Seaborn، Plotly و Bokeh از جمله محبوبترین گزینهها برای رسم نمودار در پایتون هستند. هر یک از این کتابخانهها ویژگیهای خاصی دارند که بسته به نوع دادهها و نیاز کاربر، میتوان از آنها استفاده کرد. Matplotlib به عنوان قدیمیترین و پرکاربردترین ابزار، امکان ترسیم نمودارهای پایهای را فراهم میکند، درحالیکه Seaborn برای تجزیهوتحلیل آماری دادهها مناسبتر است. Plotly و Bokeh امکان ایجاد نمودارهای تعاملی را فراهم میکنند که برای نمایش دادهها در صفحات وب بسیار کاربردی است. در این آموزش از سری مقاله های مجله پی استور شما را با رسم نمودار در پایتون با استفاده از Matplotlib آشنا میشوید، که شاید پرکاربردترین کتابخانه رسم و مصورسازی داده در پایتون باشد.
نصب Matplotlib در پایتون
سادهترین راه برای نصب Matplotlib استفاده از pip است. دستور زیر را در ترمینال وارد کنید:
pip install matplotlib
یا میتوانید Matplotlib را از اینجا دانلود کرده و بهصورت دستی نصب کنید.
رسم نمودار در پایتون
روشهای مختلفی برای رسم نمودار در پایتون وجود دارد. در اینجا برخی از روشهای رایج برای رسم نمودار با Matplotlib را بررسی میکنیم:
- رسم یک خط
- رسم دو یا چند خط در یک نمودار
- سفارشیسازی نمودارها
- رسم نمودار میلهای با Matplotlib
- رسم هیستوگرام با Matplotlib
- رسم نمودار پراکندگی با Matplotlib
- رسم نمودار دایرهای با Matplotlib
- رسم منحنیهای یک معادله دادهشده
۱- رسم یک خط
در این مثال، کد از 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()
خروجی:
۲- رسم دو یا چند خط در یک نمودار
در این مثال، کد از 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()
خروجی:
۳- سفارشی سازی نمودارها
در این مثال، کد از 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()
خروجی:
۴- رسم نمودار میله ای با 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()
خروجی:
۵- رسم هیستوگرام با 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, ۶۰,۷,۱۳,۵۷,۱۸,۹۰,۷۷,۳۲,۲۱,۲۰,۴۰] # 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()
خروجی:
۶- رسم نمودار پراکندگی با 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()
خروجی:
۷- رسم نمودار دایره ای با 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()
خروجی:
۸- رسم منحنی های یک معادله داده شده
در این مثال، کد از 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، میتوان نمودارهای متنوعی از جمله خطی، میلهای، پراکندگی، دایرهای و هیستوگرام ایجاد کرد. هر یک از این کتابخانهها ویژگیهای منحصربهفردی دارند که بسته به نیاز میتوان از آنها استفاده کرد. یادگیری و بهکارگیری روشهای مختلف رسم نمودار در پایتون، به درک بهتر دادهها و تصمیمگیریهای دقیقتر کمک میکند.