نمودارهای سه بعدی در Matplotlib: راهنمای جامع و کاربردی
مقدمه
نمودارهای سه بعدی ابزاری کارآمد برای نمایش روابط پیچیده بین سه متغیر به صورت بصری هستند. Matplotlib، به عنوان کتابخانه ای قدرتمند برای تجسم داده در پایتون، امکانات متعددی را برای ایجاد نمودارهای سه بعدی با جزئیات و شخصی سازی های فراوان در اختیار کاربران قرار می دهد.
هدف از این راهنما
این راهنما با هدف ارائه شرحی جامع و کاربردی، نحوه ایجاد نمودارهای سه بعدی را در Matplotlib به صورت گام به گام شرح می دهد.
مراحل ایجاد نمودار سه بعدی:
۱. بارگذاری کتابخانه های ضروری:
در ابتدای امر، کتابخانه های matplotlib.pyplot
(با نام مستعار plt
) و numpy
(با نام مستعار np
) به ترتیب برای رسم نمودار و کار با داده ها فراخوانی میشوند:
import matplotlib.pyplot as plt
import numpy as np
۲. آماده سازی داده ها:
داده ها باید به صورت آرایه های NumPy با عناوین مجزا برای محور x، محور y و مقادیر تعریف شوند. به عنوان مثال:
x = np.array([۱, ۲, ۳, ۴, ۵])
y = np.array([۳, ۵, ۷, ۲, ۱])
z = np.array([۳۰, ۵۰, ۷۰, ۲۰, ۱۰])
در این مثال، آرایه x
مقادیر محور x، آرایه y
مقادیر محور y و آرایه z
مقادیر مربوط به هر نقطه در فضای سه بعدی را نشان میدهد.
۳. ایجاد نمودار سه بعدی:
با استفاده از تابع plt.figure()
برای ایجاد یک نمودار جدید و سپس تابع plt.plot_trisurf()
، نمودار سه بعدی با سطح مثلث بندی شده و رنگ آمیزی بر اساس مقادیر رسم می شود:
fig = plt.figure()
ax = fig.add_subplot(۱۱۱, projection='3d')
ax.plot_trisurf(x, y, z, cmap='viridis')
ax.set_xlabel('محور X')
ax.set_ylabel('محور Y')
ax.set_zlabel('محور Z')
ax.set_title("نمودار سه بعدی")
plt.show()
۴. سفارشیسازی نمودار (اختیاری):
Matplotlib امکانات متعددی را برای شخصیسازی ظاهر نمودار سه بعدی از جمله نوع نمودار (سطح، خط، نقطه و …)، رنگ آمیزی، زوایا، پرسپکتیو، نورپردازی، برچسب ها، عنوان و موارد دیگر ارائه میدهد. برای جزئیات بیشتر، به مستندات Matplotlib مراجعه کنید.
مثال کامل:
import matplotlib.pyplot as plt
import numpy as np
x = np.array([۱, ۲, ۳, ۴, ۵, ۶, ۷, ۸, ۹])
y = np.array([۳, ۵, ۷, ۲, ۱, ۴, ۳, ۵, ۷])
z = np.array([۳۰, ۵۰, ۷۰, ۲۰, ۱۰, ۶۰, ۴۰, ۵۰, ۷۰])
fig = plt.figure(figsize=(۱۰, ۶))
ax = fig.add_subplot(۱۱۱, projection='3d')
ax.plot_trisurf(x, y, z, cmap='jet', antialiased=True)
ax.set_xlabel('محور X')
ax.set_ylabel('محور Y')
ax.set_zlabel('محور Z')
ax.set_title("نمودار سه بعدی با رنگ آمیزی سفارشی")
# تنظیمات زوایا و پرسپکتیو
ax.view_init(elev=۱۵, azim=۶۰)
# اضافه کردن نورپردازی
light = plt.get_current_fig_manager().add_light(elev=۱۵, azim=۶۰)
plt.show()
این کد یک نمودار سه بعدی با رنگ آمیزی سفارشی، زوایای دید تنظیم شده، نورپردازی و عنوان ایجاد میکند.