از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
کتابخانه بوکه پایتون برای تجسم داده های تعاملی
سرفصلهای مطلب
معرفی
در این آموزش قصد داریم روش استفاده را یاد بگیریم بوکه کتابخانه در پایتون بسیاری از شما نام Matplotlib، NumPy، Seaborn و غیره را شنیده اید زیرا بسیار محبوب هستند. python کتابخانه هایی برای گرافیک و تجسم آنچه بوکه را از این کتابخانه ها متمایز می کند این است که امکان تجسم پویا را فراهم می کند که توسط مرورگرهای مدرن پشتیبانی می شود (زیرا با استفاده از JS و HTML گرافیک ها را ارائه می دهد) و از این رو می توان از آن برای برنامه های کاربردی وب با سطح تعاملی بسیار بالایی استفاده کرد.
بوکه به زبان R و Scala نیز موجود است. با این حال، همتای پایتون آن بیشتر از دیگران استفاده می شود.
نصب و راه اندازی
ساده ترین راه برای نصب بوکه با استفاده از پایتون این است pip مدیر بسته اگر تو داری pip برای دانلود و نصب بوکه که در سیستم شما نصب شده است، دستور زیر را اجرا کنید:
$ pip install bokeh
توجه داشته باشید: اگر این روش نصب را انتخاب می کنید، باید NumPy را از قبل در سیستم خود نصب کرده باشید
روش دیگر برای نصب بوکه از طریق توزیع Anaconda است. به سادگی به سراغ خود بروید terminal یا خط فرمان را اجرا کنید و این دستور را اجرا کنید:
$ conda install bokeh
پس از انجام این مرحله، دستور زیر را برای اطمینان از موفقیت آمیز بودن نصب خود اجرا کنید:
$ bokeh --version
اگر دستور بالا با موفقیت اجرا شود یعنی نسخه چاپ شود، می توانید ادامه دهید و از کتابخانه بوکه در برنامه های خود استفاده کنید.
تمرین های کدنویسی
در این قسمت به انجام چند کار دستی خواهیم پرداختon با فراخوانی توابع کتابخانه بوکه برای ایجاد تجسم های تعاملی مثال بزنید. بیایید با تلاش برای ایجاد یک مربع شروع کنیم.
توجه داشته باشید: نظرات در کدهای این مقاله بسیار مهم است. آنها نه تنها کد را توضیح می دهند بلکه اطلاعات معنی دار دیگری را نیز منتقل می کنند. بهعلاوه، ممکن است عملکرد «جایگزین» یا اضافی وجود داشته باشد که نظر داده شود، اما میتوانید با حذف آن خطوط، آن را اجرا کنید.
ترسیم اشکال اساسی
در اینجا ما را مشخص می کنیم x
و y
مختصات نقاط، که در هنگام ترسیم خط به ترتیب دنبال می شوند. را figure
تابع نمونه a figure
شی، که پیکربندی های نموداری را که می خواهید رسم کنید ذخیره می کند. در اینجا می توانیم هم محدوده X و هم محدوده Y نمودار را مشخص کنیم که از 0 تا 4 تنظیم می کنیم که محدوده داده های ما را پوشش می دهد. را line
متد سپس یک خط بین مختصات ما ترسیم می کند که به شکل مربع است.
from bokeh.io import output_file, output_notebook
from bokeh.plotting import figure, show
x = (1, 3, 3, 1, 1)
y = (1, 1, 3, 3, 1)
output_file('Square.html', title='Square in Bokeh')
square = figure(title='Square Shape',
plot_height=300, plot_width=300,
x_range=(0, 4), y_range=(0, 4))
square.line(x, y)
show(square)
ممکن است در کد متوجه شده باشید که جایگزینی برای آن وجود دارد output_file
تابع، که در عوض نتیجه را در a نشان می دهد Jupyter notebook با استفاده از output_notebook
تابع. اگر ترجیح می دهید از a notebook سپس جایگزین کنید output_file
عملکرد با output_notebook
در کد سراسر این مقاله
هنگامی که اسکریپت بالا را اجرا می کنید، باید مربع زیر را در یک تب جدید از مرورگر پیش فرض خود مشاهده کنید.
خروجی:
در تصویر بالا ابزارها را مشاهده می کنید روی سمت راست (پن، زوم جعبه، زوم چرخ، ذخیره، تنظیم مجدد، کمک – از بالا به پایین)؛ این ابزارها شما را قادر می سازد تا با نمودار تعامل داشته باشید.
نکته مهم دیگری که مفید خواهد بود این است که پس از هر فراخوانی تابع “show” اگر یک شی “شکل” جدید ایجاد کنید، فراخوانی بعدی تابع “show” با شکل جدید ارسال شده به عنوان آرگومان، خطا ایجاد می کند. . برای رفع این خطا کد زیر را اجرا کنید:
from bokeh.plotting import reset_output
reset_output()
را reset_output
متد، شناسه شکل را بازنشانی می کند show
تابع در حال حاضر باقی می ماند تا بتوان یک تابع جدید به آن اختصاص داد.
کاری که تا کنون انجام دادهایم نسبتاً ابتدایی است، اکنون سعی میکنیم چندین خط/نقشه معادله را در یک نمودار ایجاد کنیم. ابتدایی ترین مثال برای آن، تلاش برای ترسیم خطوط برای معادلات است y = x
، y = x^2
، و y = x^3
. پس بیایید ببینیم چگونه میتوانیم نموداری بسازیم تا همه آنها را با هم با استفاده از بوکه نمایش دهیم:
from bokeh.plotting import figure, output_file, show
x = (1, 2, 3, 4, 5, 6)
x_square = (i**2 for i in x)
x_cube = (i**3 for i in x)
output_file("Eqs.html")
lines = figure(title='Line Comparisons', x_range=(0, 8), y_range=(0,100),
x_axis_label='X-Axis', y_axis_label='Y-Axis')
lines.line(x, x, legend="y = x", line_width=3)
lines.square(x, x, legend="y = x", size=10)
lines.line(x, x_square, legend="y = x^2", line_width=3)
lines.circle(x, x_square, legend="y = x^2", size=10)
lines.line(x, x_cube, legend="y = x^3", line_width=3)
lines.square(x, x_cube, legend="y = x^2", size=10)
show(lines)
خروجی:
قبل از اینکه به ترسیم چند گرافیک دیگر ادامه دهیم، ابتدا چند ترفند جالب را یاد می گیریم تا گرافیک شما را تعاملی تر و همچنین زیبایی شناسی کند. برای این منظور، ابتدا در مورد ابزارهای مختلفی که کتابخانه بوکه استفاده می کند، جدا از ابزارهایی که در کنار آن نمایش داده می شوند، یاد خواهیم گرفت (یا روی بالا یا روی سمت راست) نمودار. توضیحات در کامنت کد زیر ارائه خواهد شد:
x = (1, 2, 3, 4, 5, 6)
x_square = (i**2 for i in x)
x_cube = (i**3 for i in x)
from bokeh.plotting import figure, output_file, show
from bokeh.models import HoverTool, BoxSelectTool
output_file("Eqs.html")
tool_list = (HoverTool(), BoxSelectTool())
lines = figure(title='Line Comparisons', x_range=(0, 8), y_range=(0, 100),
x_axis_label='X-Axis', y_axis_label='Y-Axis', tools=tool_list)
lines.line(x, x, legend="y = x", line_width=3)
lines.square(x, x, legend="y = x", size=10)
lines.line(x, x_square, legend="y = x^2", line_width=3)
lines.circle(x, x_square, legend="y = x^2", size=10)
lines.line(x, x_cube, legend="y = x^3", line_width=3)
lines.square(x, x_cube, legend="y = x^2", size=10)
show(lines)
خروجی:
در تصویر بالا می توانید دو گزینه اضافی اضافه شده به ابزارهای موجود قبلی را مشاهده کنید. اکنون همچنین میتوانید روی هر نقطه دادهای بروید و جزئیات آن نشان داده میشود و همچنین میتوانید گروه خاصی از نقاط داده را برای برجسته کردن آنها انتخاب کنید.
مدیریت داده های طبقه بندی شده با بوکه
کار بعدی که ما با استفاده از کتابخانه بوکه یاد خواهیم گرفت مدیریت داده های طبقه بندی شده است. برای آن، ابتدا سعی می کنیم نمودار میله ای بسازیم. برای جالب کردن آن، بیایید سعی کنیم نموداری ایجاد کنیم که نشان دهنده تعداد جام های جهانی قهرمان شده توسط آرژانتین، برزیل، اسپانیا و پرتغال باشد. به نظر جالب میاد؟ بیایید آن را کدگذاری کنیم.
from bokeh.io import show, output_file
from bokeh. plotting import figure
output_file("cups.html")
teams = ('Argentina', 'Brazil', 'Spain', 'Portugal')
wc_won = (5, 3, 4, 2)
barchart = figure(x_range=teams, plot_height=250, title="WC Counts",
toolbar_location=None, tools="")
barchart.vbar(x=teams, top=wc_won, width=0.5)
barchart.xgrid.grid_line_color = 'red'
barchart.y_range.start = 0
show(barchart)
خروجی:
آیا در نمودار بالا متوجه چیزی شده اید؟ این کاملا ساده و غیر قابل توجه است، نه؟ بیایید تغییراتی در کد بالا ایجاد کنیم و آن را کمی رنگارنگ و زیباتر کنیم. بوکه گزینه های زیادی برای کمک به ما در این زمینه دارد. بیایید ببینیم چه کاری می توانیم با آن انجام دهیم:
from bokeh.io import show, output_file
from bokeh.plotting import figure
from bokeh.models import ColumnDataSource
from bokeh.palettes import Spectral4
from bokeh.transform import factor_cmap
output_file("cups.html")
teams = ('Argentina', 'Brazil', 'Spain', 'Portugal')
wc_won = (5, 3, 4, 2)
source = ColumnDataSource(data=dict(teams=teams, wc_won=wc_won, color=Spectral4))
barchart = figure(x_range=teams, y_range=(0,8), plot_height=250, title="World Cups Won",
toolbar_location=None, tools="")
barchart.vbar(x='teams', top='wc_won', width=0.5, color='color', legend='teams', source=source)
barchart.legend.orientation = "horizontal"
barchart.legend.location = "top_center"
show(barchart)
خروجی:
بدیهی است که نمودار جدید با تعامل بیشتر، بسیار بهتر از قبل به نظر می رسد.
قبل از پایان این مقاله، میخواهم به همه شما اطلاع دهم که این فقط گوشهای از عملکردی بود که بوکه ارائه میکند. هزاران کار جالب دیگر وجود دارد که می توانید با آن انجام دهید، و باید با مراجعه به آنها آنها را امتحان کنید مستندات بوکه و از نمونه های موجود پیروی کنید.
اگرچه، منابع بزرگ دیگری به غیر از مستندات، مانند تجسم داده ها در پایتون. در اینجا شما یک راهنمای حتی عمیق تر برای بوکه و همچنین 8 کتابخانه تجسم دیگر در پایتون دریافت خواهید کرد.
نتیجه
به طور خلاصه، در این آموزش با نوع Python کتابخانه بوکه آشنا شدیم. ما دیدیم که چگونه آن را با استفاده از دانلود و نصب کنیم pip
یا anaconda
توزیع ما از برنامه های کتابخانه بوکه برای ایجاد تجسم های تعاملی و پویا از انواع مختلف و همچنین با استفاده از انواع داده های مختلف استفاده کردیم. ما همچنین با دیدن مثالهای عملی، دلیل نیاز بوکه را یاد گرفتیم، حتی اگر کتابخانههای تجسمی محبوبتری مانند Matplotlib و Seaborn در دسترس هستند. به طور خلاصه، بوکه بسیار مدبر است و تقریباً می تواند انواع تجسم های تعاملی را که ممکن است بخواهید انجام دهد.
(برچسبها به ترجمه)# python
منتشر شده در 1403-01-21 16:32:03