کتابخانه bokeh در پایتون
کتابخانه Bokeh یکی از قدرتمندترین ابزارهای visualization در زبان پایتون است که امکان ایجاد نمودارهای تعاملی و پویا را برای وب فراهم میکند. این کتابخانه به ویژه برای برنامهنویسان و تحلیلگران دادهای که نیاز به گرافهای پیچیده و کاربرپسند دارند، بسیار مناسب است.
ویژگیهای کلیدی Bokeh
- ایجاد نمودارهای تعاملی: قابلیت Zoom، Pan، Hover و ابزارهای دیگر.
- رابط وب محور: خروجیها به صورت HTML قابل نمایش هستند و به راحتی در صفحات وب قرار میگیرند.
- یکپارچگی با دادههای پانداس و نumpy: مدیریت دادهها و رسم نمودارها به سادگی انجام میشود.
- امکان استفاده از سرور Bokeh: برای ساخت برنامههای وب تعاملی بدون نیاز به فریمورکهای سنگین.
نصب Bokeh
برای نصب Bokeh از دستور زیر در ترمینال استفاده میکنیم:
pip install bokehاین دستور آخرین نسخه کتابخانه را نصب میکند و آماده استفاده در پروژههای شما میشود.
ایجاد اولین نمودار با Bokeh
در این مثال یک نمودار ساده خطی رسم میکنیم:
from bokeh.plotting import figure, show
# دادهها
x = [1, 2, 3, 4, 5]
y = [6, 7, 2, 4, 5]
# ایجاد نمودار
p = figure(title="Simple Line Plot", x_axis_label='X-axis', y_axis_label='Y-axis')
p.line(x, y, legend_label="Line", line_width=2)
# نمایش نمودار
show(p)در این کد:
- با
figure()یک نمودار جدید ایجاد میکنیم. - با
line()دادهها را به صورت خط رسم میکنیم. - با
show()خروجی نمودار در مرورگر نمایش داده میشود.
نمودارهای تعاملی و ابزارهای Bokeh
Bokeh امکان افزودن ابزارهای تعاملی مختلف را دارد:
from bokeh.models import HoverTool
hover = HoverTool(tooltips=[("X value", "@x"), ("Y value", "@y")])
p.add_tools(hover)با استفاده از HoverTool میتوان اطلاعات دقیق نقاط نمودار را هنگام حرکت موس مشاهده کرد.
انواع نمودارها در Bokeh
- Line: نمودار خطی برای نمایش تغییرات پیوسته.
- Bar: نمودار میلهای برای مقایسه مقادیر.
- Scatter: نمودار پراکندگی برای نمایش توزیع دادهها.
- Area: نمودار مساحتی برای نمایش تجمع مقادیر.
- Heatmap: نقشه حرارتی برای نمایش دادههای ماتریسی.
مثال نمودار پراکندگی (Scatter)
from bokeh.plotting import figure, show
x = [5, 7, 8, 7, 2, 17, 2, 9]
y = [99, 86, 87, 88, 100, 86, 103, 87]
p = figure(title="Scatter Plot Example", x_axis_label='X-axis', y_axis_label='Y-axis')
p.scatter(x, y, size=10, color="navy", alpha=0.5)
show(p)در این مثال، scatter() برای رسم نقاط استفاده شده و با پارامتر alpha شفافیت نقاط کنترل میشود.
بهترین شیوهها در استفاده از Bokeh
- استفاده از ColumnDataSource: دادهها را در یک منبع مرکزی ذخیره کنید تا به راحتی بتوان آنها را در چند نمودار استفاده کرد.
- مدیریت ابزارها: ابزارهای تعاملی اضافی را تنها در صورت نیاز فعال کنید تا رابط کاربری ساده و سریع باقی بماند.
- بهینهسازی دادهها: هنگام کار با دادههای بزرگ از روشهای نمونهگیری (sampling) برای بهبود سرعت رندر نمودار استفاده کنید.
- سازگاری با وب: خروجیها را به صورت HTML ذخیره کنید تا بتوانید نمودارها را در سایتها یا داشبوردها استفاده کنید.
استفاده از ColumnDataSource برای نمودار پویا
from bokeh.plotting import figure, show
from bokeh.models import ColumnDataSource
source = ColumnDataSource(data=dict(x=[1,2,3,4,5], y=[6,7,2,4,5]))
p = figure(title="Dynamic Line with ColumnDataSource")
p.line('x', 'y', source=source, line_width=2)
show(p)در این روش دادهها در ColumnDataSource قرار میگیرند و میتوان با تغییر دادهها، نمودار را به صورت پویا بهروزرسانی کرد.
مزایا و معایب Bokeh
| مزایا | معایب |
|---|---|
|
|
نتیجهگیری
Bokeh یک ابزار قدرتمند برای توسعه نمودارهای تعاملی و حرفهای در پایتون است. با یادگیری اصول اولیه و بهترین شیوهها، میتوان نمودارهای جذاب، قابل تعامل و کارآمد برای تحلیل داده و نمایش نتایج ایجاد کرد. ترکیب Bokeh با دادههای پانداس و NumPy امکان ایجاد داشبوردهای تحلیلی پیچیده را به راحتی فراهم میکند.
آیا این مطلب برای شما مفید بود ؟




