آموزش محورها در برنامه نویسی بوکه

3 سال پیش
آموزش محورها در برنامه نویسی بوکه

آموزش محورها در برنامه نویسی بوکه

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش محورها در برنامه نویسی بوکه خواهیم پرداخت.

در این درس، ما در مورد انواع مختلف محورها بحث خواهیم کرد.

پیشنهاد ویژه : پکیج آموزش پایتون

 

  •  محورهای دسته ای

نمودارهای بوکه داده های عددی را در طول هر دو محور x و y نشان می دهند. برای استفاده از داده های طبقه بندی شده در هر یک از محورها، باید یک FactorRange مشخص کنیم تا ابعاد دسته بندی را برای یکی از آنها مشخص کنیم.

  • محور مقیاس لگاریتمی

به سیستم اگر بین قانون داده های x و y رابطه قانون وجود دارد ، استفاده از مقیاس های ورود به سیستم در هر دو محور مطلوب است.

 

  • محور دوقلو

ممکن است لازم باشد که چندین محور نشان دهنده دامنه های مختلف در یک شکل واحد باشد. با تعریف خصوصیات extra_x_range و extra_y_range می توان شی شکل را پیکربندی کرد

محورهای دسته ای

در مثال ها نمودارهای بوکه داده های عددی را در طول هر دو محور x و y نشان می دهد. برای استفاده از داده های طبقه بندی شده در هر یک از محورها، باید یک FactorRange مشخص کنیم تا ابعاد دسته بندی را برای یکی از آنها مشخص کنیم. به عنوان مثال، برای استفاده از رشته ها در لیست داده شده برای محور x –

langs = ['C', 'C++', 'Java', 'Python', 'PHP']
fig = figure(x_range = langs, plot_width = 300, plot_height = 300)

 

مثال

با مثال زیر، یک نمودار ساده میله ای نمایش داده می شود که تعداد دانشجویان ثبت نام شده در دوره های مختلف ارائه شده را نشان می دهد.

from bokeh.plotting import figure, output_file, show
langs = ['C', 'C++', 'Java', 'Python', 'PHP']
students = [23,17,35,29,12]
fig = figure(x_range = langs, plot_width = 300, plot_height = 300)
fig.vbar(x = langs, top = students, width = 0.5)
show(fig)

 

خروجی

Categorical Axes

برای نشان دادن هر نوار در رنگ های مختلف ، ویژگی رنگ تابع()vbar را به لیست مقادیر رنگ تنظیم کنید.

cols = ['red','green','orange','navy', 'cyan']
fig.vbar(x = langs, top = students, color = cols,width=0.5)

خروجی

plot

 

برای ارائه یک میله انباشته عمودی (یا افقی) با استفاده از تابع ()vbar_stack  یا ()hbar_stack، ویژگی stackers را در لیست فیلدها قرار دهید تا به صورت پی در پی پشته شوند و ویژگی منبع را به یک شی دیکت حاوی مقادیر مربوط به هر قسمت تنظیم کنید.

در مثال زیر، فروش واژه نامه ای است که ارقام فروش سه محصول را در سه ماه نشان می دهد.

from bokeh.plotting import figure, output_file, show
products = ['computer','mobile','printer']
months = ['Jan','Feb','Mar']
sales = {'products':products,
   'Jan':[10,40,5],
   'Feb':[8,45,10],
   'Mar':[25,60,22]}
cols = ['red','green','blue']#,'navy', 'cyan']
fig = figure(x_range = products, plot_width = 300, plot_height = 300)
fig.vbar_stack(months, x = 'products', source = sales, color = cols,width = 0.5)
show(fig)

 

خروجی

sales dictionary

 

یک نمودار میله ای گروه بندی شده با تعیین یک تغییر مکان بصری برای میله ها با کمک تابع ()dodge در ماژول bokeh.transform بدست می آید.

تابع dodge برای هر طرح میله ای یک انحراف نسبی را ارائه می دهد و بدین ترتیب به تصویری از گروه دست می یابد. در مثال زیر، ()glyph vbar  با انحراف ۰٫۲۵ برای هر گروه از میله ها برای یک ماه خاص جدا شده است.

from bokeh.plotting import figure, output_file, show
from bokeh.transform import dodge
products = ['computer','mobile','printer']
months = ['Jan','Feb','Mar']
sales = {'products':products,
   'Jan':[10,40,5],
   'Feb':[8,45,10],
   'Mar':[25,60,22]}
fig = figure(x_range = products, plot_width = 300, plot_height = 300)
fig.vbar(x = dodge('products', -0.25, range = fig.x_range), top = 'Jan',
   width = 0.2,source = sales, color = "red")
fig.vbar(x = dodge('products', 0.0, range = fig.x_range), top = 'Feb',
   width = 0.2, source = sales,color = "green")
fig.vbar(x = dodge('products', 0.25, range = fig.x_range), top = 'Mar',
   width = 0.2,source = sales,color = "blue")
show(fig)

 

خروجی

visual displacement

محور مقیاس لگاریتمی

وقتی مقادیر یکی از محورهای یک نمودار با افزایش مقادیر خطی دیگری افزایش تصاعدی دارند، اغلب لازم است که داده های مربوط به محور سابق در مقیاس لگاریتمی به سیستم نمایش داده شوند. به عنوان مثال، اگر بین سری داده های x و y رابطه توان وجود داشته باشد، استفاده از مقیاس های لگاریتمی به سیستم در هر دو محور مطلوب است.

تابع شکل () API Bokeh.plotting x_axis_type و y_axis_type را به عنوان آرگومان هایی می پذیرد که ممکن است با عبور از “log” برای مقدار هر یک از این پارامترها به عنوان محور log مشخص شوند.

شکل اول نمودار بین x و ۱۰x را در مقیاس خطی نشان می دهد. در شکل دوم ، نوع y_axis روی “log” تنظیم شده است

from bokeh.plotting import figure, output_file, show
x = [0.1, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0]
y = [10**i for i in x]
fig = figure(title = 'Linear scale example',plot_width = 400, plot_height = 400)
fig.line(x, y, line_width = 2)
show(fig)

 

خروجی

 

Log Scale Axes

 

اکنون تابع ()figure  را برای پیکربندی y_axis_type = ‘log’ تغییر دهید

fig = figure(title = 'Linear scale example',plot_width = 400, plot_height = 400, y_axis_type = "log")

 

خروجی

Linear scale

 

محورهای دوقلو

در موقعیت های خاص، ممکن است لازم باشد چندین محور نشان دهنده دامنه های مختلف در یک شکل واحد باشد. با تعریف خصوصیات extra_x_range و extra_y_range می توان شی شکل را پیکربندی کرد. ضمن افزودن حروف کوچک به شکل، از این دامنه های نام برده استفاده می شود.

ما سعی می کنیم یک منحنی سینوسی و یک خط مستقیم را در همان نمودار نشان دهیم. هر دو حروف دارای محور y با دامنه های مختلف هستند. سری داده های x و y برای منحنی و خط سینوسی با استفاده از موارد زیر بدست می آیند –

from numpy import pi, arange, sin, linspace
x = arange(-2*pi, 2*pi, 0.1)
y = sin(x)
y2 = linspace(0, 100, len(y))

در اینجا نمودار بین x و y رابطه سینوسی را نشان می دهد و نمودار بین x و y2 یک خط مستقیم است. آبجکت شکل با y_range صریح تعریف می شود و یک حروف خط نشان دهنده منحنی سینوس به شرح زیر اضافه می شود –

fig = figure(title = 'Twin Axis Example', y_range = (-1.1, 1.1))
fig.line(x, y, color = "red")

 

ما به یک محدوده y اضافی نیاز داریم. که به صورت زیر تعریف شده است

fig.extra_y_ranges = {"y2": Range1d(start = 0, end = 100)}

 

برای افزودن محور y اضافی در سمت راست، از متد ()add_layout استفاده کنید. یک گلوی خط جدید به نمایندگی از x و y2 به شکل اضافه کنید.

fig.add_layout(LinearAxis(y_range_name = "y2"), 'right')
fig.line(x, y2, color = "blue", y_range_name = "y2")

 

این منجر به نمودار با محورهای دوقلو خواهد شد. کد کامل و خروجی به شرح زیر است –

from numpy import pi, arange, sin, linspace
x = arange(-2*pi, 2*pi, 0.1)
y = sin(x)
y2 = linspace(0, 100, len(y))
from bokeh.plotting import output_file, figure, show
from bokeh.models import LinearAxis, Range1d
fig = figure(title='Twin Axis Example', y_range = (-1.1, 1.1))
fig.line(x, y, color = "red")
fig.extra_y_ranges = {"y2": Range1d(start = 0, end = 100)}
fig.add_layout(LinearAxis(y_range_name = "y2"), 'right')
fig.line(x, y2, color = "blue", y_range_name = "y2")
show(fig)

 

خروجی

Twin Axes

 

منبع.

لیست جلسات قبل آموزش برنامه نویسی بوکه 

  1. آموزش برنامه نویسی بوکه – مقدمه
  2. آموزش تنظیمات محیط برنامه نویسی بوکه
  3. آموزش برنامه نویسی بوکه و شروع کار
  4. آموزش ژوپیتر نوت بوک در برنامه نویسی بوکه 
  5. آموزش مفاهیم کلی برنامه نویسی بوکه
  6. آموزش طرح ها و گلیف در برنامه نویسی بوکه
  7. آموزش نمودار مساحت در برنامه نویسی بوکه
  8. آموزش گلیف دایره در برنامه نویسی بوکه
  9.  آموزش مستطیل، بیضی و چند ضلعی در برنامه نویسی بوکه
  10. آموزش گوه و قوس در برنامه نویسی بوکه
  11. آموزش منحنی های تخصصی در برنامه نویسی بوکه
  12. آموزش تنظیم محدوده ها در برنامه نویسی بوکه
0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه