مقدمه
به فصل «تولید داده» خوش آمدید! در این فصل، به بررسی نحوه کار با دادهها و مصورسازی آنها خواهیم
پرداخت. مصورسازی دادهها یک ابزار بسیار قدرتمند است که به ما کمک میکند تا الگوها، روندها و
روابط پنهان در دادهها را به راحتی شناسایی و درک کنیم. یک نمودار خوب میتواند داستانی را روایت
کند که هزاران ردیف داده قادر به بیان آن نیستند. این کار در حوزههای مختلفی از تحلیل دادههای
مالی و علمی گرفته تا هوش تجاری و گزارشدهی، کاربرد حیاتی دارد.
پایتون دارای یک اکوسیستم غنی از کتابخانههای مصورسازی داده است. ما در این فصل از کتابخانه
قدرتمند و محبوب Matplotlib برای رسم نمودارهای مختلف استفاده خواهیم کرد. Matplotlib
یک کتابخانه جامع برای ایجاد نمودارهای ایستا، متحرک و تعاملی در پایتون است و به عنوان پایهای
برای بسیاری از کتابخانههای دیگر مانند Seaborn عمل میکند.
نصب Matplotlib
Matplotlib یک کتابخانه خارجی است و به صورت پیشفرض همراه با پایتون نصب نمیشود. برای
استفاده از آن، ابتدا باید آن را با استفاده از مدیر پکیج پایتون، یعنی pip، نصب کنیم. توصیه
میشود که برای هر پروژه، یک محیط مجازی (virtual environment) جداگانه ایجاد کنید تا وابستگیهای
پروژههای مختلف با یکدیگر تداخل نداشته باشند.
$ python -m venv data_env
$ source data_env/bin/activate # On Windows, use: data_env\Scripts\activate
(data_env) $ pip install matplotlib
رسم یک نمودار خطی ساده
بیایید با رسم یک نمودار خطی ساده از چند عدد شروع کنیم. ما از ماژول pyplot در Matplotlib برای
ایجاد نمودارها استفاده میکنیم. طبق یک قرارداد رایج در جامعه پایتون، این ماژول با نام مستعار
plt وارد میشود.
PYTHON
import matplotlib.pyplot as plt
squares = [1, 4, 9, 16, 25]
fig, ax = plt.subplots()
ax.plot(squares)
plt.show()
در این کد، ما ابتدا ماژول pyplot را با نام مستعار plt وارد میکنیم. سپس یک لیست از مجذور چند
عدد را تعریف میکنیم. خط fig, ax = plt.subplots() یک تابع کلیدی است. این تابع یک پنجره نمودار
(که در متغیر fig ذخیره میشود) و یک یا چند نمودار داخلی (که به آنها محور یا axes
میگویند و در متغیر ax ذخیره میشوند) را ایجاد میکند.
متد ax.plot(squares) تلاش میکند تا دادههای لیست squares را به صورت یک نمودار معنادار
رسم کند. از آنجایی که ما فقط یک لیست از مقادیر را به آن دادهایم، Matplotlib فرض میکند که
اینها مقادیر محور y هستند و مقادیر محور x را به صورت خودکار از ۰ تا ۴ در نظر
میگیرد. در نهایت، plt.show() نمودار را در یک پنجره جدید نمایش میدهد.
سفارشیسازی نمودار
نمودار قبلی اطلاعات را به درستی نمایش میدهد، اما فاقد هرگونه زمینه و توضیح است. یک نمودار خوب
باید دارای عنوان و برچسبهای واضح برای محورها باشد تا خواننده بتواند به راحتی آن را درک کند.
افزودن عنوان و برچسبها
ما میتوانیم با استفاده از متدهای مختلف روی شیء ax، نمودار خود را سفارشی کنیم. همچنین، با
پاس دادن مقادیر محور x به متد plot، میتوانیم کنترل بیشتری روی نمودار داشته باشیم.
PYTHON
input_values = [1, 2, 3, 4, 5]
squares = [1, 4, 9, 16, 25]
plt.style.use('seaborn')
fig, ax = plt.subplots()
ax.plot(input_values, squares, linewidth=3)
ax.set_title("Square Numbers", fontsize=24)
ax.set_xlabel("Value", fontsize=14)
ax.set_ylabel("Square of Value", fontsize=14)
ax.tick_params(axis='both', labelsize=14)
plt.show()
در این نسخه بهبودیافته، ما یک لیست از مقادیر ورودی را نیز به متد plot دادهایم تا هر دو محور
x و y به درستی مقیاسبندی شوند. با استفاده از plt.style.use('seaborn')، یک
استایل بصری زیبا و حرفهای را برای نمودار خود انتخاب کردهایم.
متدهای set_title، set_xlabel و set_ylabel به ما اجازه میدهند تا به ترتیب عنوان اصلی
نمودار، برچسب محور افقی و برچسب محور عمودی را تنظیم کنیم. پارامتر fontsize نیز اندازه فونت را
کنترل میکند. در نهایت، متد tick_params برای استایلدهی به اعداد روی محورها (tick marks) به
کار میرود.
در این درس، با اصول اولیه مصورسازی دادهها در پایتون و نحوه رسم یک نمودار خطی ساده با استفاده از
کتابخانه Matplotlib آشنا شدیم. در درس بعدی، به سراغ «پیادهروی تصادفی» خواهیم رفت و یاد
میگیریم که چگونه دادههای تصادفی تولید کرده و آنها را به صورت یک نمودار جذاب نمایش دهیم.