انجمن هوش مصنوعی دانشگاه اصفهان
معرفی کتابخوانه پلاتلی (Plotly)(بخش اول)
نگاهی کلی به پلاتلی :
پلاتلی یکی دیگر از ابزارهای تجسم داده برای زبان هایی مثل پایتون و جاوااسکریپت است که با زبانهای
متعددی از جمله جاوااسکریپت نوشته شده است. به دلیل اینکه زبان اصلی این کتابخانه جی اس است، سازگاری
بسیاری با پیادهسازی تحت وب دارد و میتوان به این وسیله، نمودارهایی با فرمت HTML تجسم کرد.
شروع کار با پلاتلی :
همانگونه که قبلا گفته شده، میتوان در محیط conda با استفاده از اسم یک کتابخانه، آنرا نصب کرد.
به راحتی از این کد استفاده کرده و آنرا دانلود و نصب میکنیم.
conda install -c plotly plotly=5.4.0
پس از نصب میتوان در محیط جوپیتر شروع به استفاده از این کتابخانه کرد. پس در قسمت بعد همراه ما باشید
مرحله بعدی ایمپورت و استفاده اولیه از این کتابخانه میباشد:
import plotly.graph_objects as go fig = go.Figure(data=go.Bar(y=[2, 3, 1])) fig.write_html('first_figure.html', auto_open=True)
در این قطعه کد، ابتدا کتابخانه ایمپورت شده و سپس، نمودار ساده ای تعریف شده و در مرورگر به طور خودکار نمایش داده میشود. همانگونه که مشاهده میشود، نمودار کاملا تعاملی است و نشانه ی قدرت این کتابخانه است.
این صفحه ی مرورگر است که به طور خودکار توسط آرگمان « auto_open باز میشود.
import plotly.graph_objects as go fig = go.Figure(data=go.Bar(y=[2, 3, 1])) fig.show()
به خاطر پشتیبانی پلاتلی از جوپیتر، میتوان خروجی این نمودار را مستقیم در این محیط پیاده سازی کرد
که به بازکردن مرورگر نیازی نداشته باشد. نمودار همچنان تعاملی است.
پکیج پلاتلی پایتون برای ایجاد، دستکاری و ارائه اشکال گرافیکی (مانند نمودارها، نمودارها و نقشه ها) وجود دارد
که توسط ساختارهای داد های که به آنها شکل ( figure ) نیز گفته میشود، استفاده میشوند.
نکته: توصیه ی ما این است که برای شروع پلاتلی، از ماژول سطح بالای plotly.express که به عنوان Plotly Express نیز شناخته می شود، و از توابع پایتونی استفاده میکند، استفاده کنید. ما نیز برای شروع توابع ساده
ای را برای شما پیاده سازی میکنیم و بعدا به طور حرفه ای تر وارد جزییات میشویم.
سر بسته Plotly Express (px) :
نمودار line :
میتوان هر شکل پلاتلی که توسط Plotly Express پیاده سازی شده را توسط متد show نمایش داد و یا
با متد print خروجی JSON آنرا چاپ نمود.
import plotly.express as px fig = px.line(x=["a","b","c"], y=[1,3,2], title="sample figure") print(fig) fig.show()
این px خروجی هایی از جنس کلاس px graph_object دارند که از این طریق میتوان نمودار های سریع ولی با دقت بالا درست کرد.
خروجی:
Figure({
'data': [{'hovertemplate': 'x=%{x}<br>y=%{y}<extra></extra>',
'legendgroup': '',
'line': {'color': '#636efa', 'dash': 'solid'},
'mode': 'lines',
'name': '',
'orientation': 'v',
'showlegend': False,
'type': 'scatter',
'x': [a, b, c],
'xaxis': 'x',
'y': array([1, 3, 2], dtype=int64),
'yaxis': 'y'}],
'layout': {'legend': {'tracegroupgap': 0},
'template': '...',
'title': {'text': 'sample figure'},
'xaxis': {'anchor': 'y', 'domain': [0.0, 1.0], 'title': {'text': 'x'}},
'yaxis': {'anchor': 'x', 'domain': [0.0, 1.0], 'title': {'text': 'y'}}}
})
شکل:
حال به شکل های مختلفی میتوان از این ماژول برای رسم نمودار استفاده کرد.
برای مثال نمودار scatter تعریف میکنیم:
df = px.data.iris() fig = px.scatter(df, x="sepal_width", y="sepal_length", color="species", title="A Plotly Express Figure") fig.show()
همانگونه که مشاهده میکنید، برای نام لجند مثال از
آرگمان color استفاده کردیم.
خروجی:
توجه داشته باشید که تمام این خروجی ها صرفا عکس از نمودار نمیباشد و به تعاملات کاربر عمل میکند.
پارامتر px اما جدی تر :
خب تا اینجا کمی با پلاتلی اکسپرس آشنا شدیم، حال میخواهیم وارد جزئیات آن شویم:
ماژول plotly.express (معمولاً به صورت px وارد میشود) حاوی توابعی است که میتوانند کل فیگورها را در
یک زمان ایجاد کنند و به آن Plotly Express یا PX میگویند. پلاتلی اکسپرس بخشی داخلی از کتابخانه
نموداری است و نقطه شروع توصیه شده برای ایجاد اکثر فیگورها است. هر تابع پلاتلی اکسپرس به صورت داخلی
از اشیاء گراف استفاده می کند و نمونه ای از plotly.graph_objects.Figure را برمی گرداند. در طول
مستندات پلاتلی، شما در بالای هر صفحه ی قابل اجرا روش ساخت هرشکل در پلاتلی اکسپرس را خواهید دید،
که به دنبال آن بخشی در مورد نحوه استفاده از اشیاء نمودار برای ساختن شکل های مشابه وجود دارد. هر شکلی
که در یک فراخوانی تابع با پلاتلی اکسپرس ایجاد می شود، می تواند تنها با استفاده از اشیاء نمودار ایجاد شود ،
اما با کد بین 5 تا 100 برابر بیشتر.
پلاتلی اکسپرس بیش ا ز 30 تابع را برای ایجاد انواع مختلف ارائه می ده د. این API برای این توابع به گونه ای
با دقت طراحی شده که تا ح د امکان سازگار و آسان برای یادگیری باش د و تغییر بین اشکال از نمودار پراکندگی
به نمودار میله ای، به هیستوگرام یا به نمودار خورشیدی در طول یک داده کاوی را آسان می کن د.
از بین این سی تابع، تعدادی را در این آموزش، توضیح میدهیم:
• Basics: scatter, line, area, bar
• Part-of-Whole: pie
• 1D Distributions: histogram, box
تعدادی از این توابع قبلا مثال زده شده و برای بقیه، نیز مثالهایی آورده میشود.
ادامه مطلب را در قسمت بعدی بخوانید ...
انجمن هوش مصنوعی دانشگاه اصفهان
احسان قیچی ساز
امیرمحسن براهیمی
ابوالفضل شیشه گر
علیرضا عشقی
مطلبی دیگر از این انتشارات
معرفی کتابخانه Matplotlib (قسمت دوم)
مطلبی دیگر از این انتشارات
معرفی کتابخانه seaborn (بخش اول)
مطلبی دیگر از این انتشارات
آشنایی با سیستم های خبره