آموزش فیلتر کردن داده ها در برنامه نویسی بوکه

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

آموزش فیلتر کردن داده ها در برنامه نویسی بوکه

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

غالباً، ممکن است بخواهید طرح مربوط به بخشی از داده را که شرایط خاصی را برآورده می کند، به جای کل مجموعه داده بدست آورید. شی کلاس CDSView تعریف شده در ماژول bokeh.models با استفاده از یک یا چند فیلتر بر روی آن، زیرمجموعه ColumnDatasource را در نظر می گیرد.

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

IndexFilter ساده ترین نوع فیلتر است. شما باید فقط شاخص هایی را از مجموعه داده ها مشخص کنید که می خواهید هنگام رسم شکل از آنها استفاده کنید.

مثال زیر استفاده از IndexFilter را برای تنظیم CDSView نشان می دهد. شکل حاصل یک گلیف خطی را بین سری داده های x و y ColumnDataSource نشان می دهد. یک شی view با استفاده از فیلتر شاخص بر روی آن بدست می آید. از view برای ترسیم گلیف دایره به عنوان یک نتیجه از IndexFilter استفاده می شود.

مثال

from bokeh.models import ColumnDataSource, CDSView, IndexFilter
from bokeh.plotting import figure, output_file, show
source = ColumnDataSource(data = dict(x = list(range(1,11)), y = list(range(2,22,2))))
view = CDSView(source=source, filters = [IndexFilter([0, 2, 4,6])])
fig = figure(title = 'Line Plot example', x_axis_label = 'x', y_axis_label = 'y')
fig.circle(x = "x", y = "y", size = 10, source = source, view = view, legend = 'filtered')
fig.line(source.data['x'],source.data['y'], legend = 'unfiltered')
show(fig)

 

خروجی

IndexFilter

 

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

یک نصب معمولی بوکه از تعدادی مجموعه داده نمونه در فهرست sampledata تشکیل شده است. به عنوان مثال زیر، ما از مجموعه داده های pa191919 که به صورت unemployment1948 ارائه شده است استفاده می کنیم. این درصد نسبت بیکاری از سال ۱۹۴۸ در ایالات متحده را ذخیره می کند. ما می خواهیم فقط برای سال ۱۹۸۰ به بعد یک طرح تولید کنیم. برای این منظور، یک شی Bo CDSView با استفاده از BooleanFilter بر روی منبع داده داده شده بدست می آید.

from bokeh.models import ColumnDataSource, CDSView, BooleanFilter
from bokeh.plotting import figure, show
from bokeh.sampledata.unemployment1948 import data
source = ColumnDataSource(data)
booleans = [True if int(year) >= 1980 else False for year in
source.data['Year']]
print (booleans)
view1 = CDSView(source = source, filters=[BooleanFilter(booleans)])
p = figure(title = "Unemployment data", x_range = (1980,2020), x_axis_label = 'Year', y_axis_label='Percentage')
p.line(x = 'Year', y = 'Annual', source = source, view = view1, color = 'red', line_width = 2)
show(p)

 

خروجی

BooleanFilter

برای اضافه کردن انعطاف پذیری بیشتر در استفاده از فیلتر، بوکه یک کلاس CustomJSFilter ارائه می دهد که با کمک آن منبع داده را می توان با یک تابع JavaScript تعریف شده توسط کاربر فیلتر کرد.

مثالی که در زیر آورده شده از همان داده های بیکاری ایالات متحده استفاده می شود. تعریف فیلتر CustomJS برای ترسیم آمار بیکاری سال ۱۹۸۰ و بعد از آن.

from bokeh.models import ColumnDataSource, CDSView, CustomJSFilter
from bokeh.plotting import figure, show
from bokeh.sampledata.unemployment1948 import data
source = ColumnDataSource(data)
custom_filter = CustomJSFilter(code = '''
   var indices = [];

   for (var i = 0; i < source.get_length(); i++){
      if (parseInt(source.data['Year'][i]) > = 1980){
         indices.push(true);
      } else {
         indices.push(false);
      }
   }
   return indices;
''')
view1 = CDSView(source = source, filters = [custom_filter])
p = figure(title = "Unemployment data", x_range = (1980,2020), x_axis_label = 'Year', y_axis_label = 'Percentage')
p.line(x = 'Year', y = 'Annual', source = source, view = view1, color = 'red', line_width = 2)
show(p)

 

منبع.

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

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

دیدگاه شما

بدون دیدگاه