как поместить виджеты во вкладки для управления графиками во вкладке - PullRequest
1 голос
/ 11 мая 2019

Я пытаюсь организовать свои виджеты и графики во вкладках. Ниже код и скриншот это то, что я получил. Мне нужно поместить виджет select4tab1 в tab1 для управления plot1 и plot2; Поместите виджет select4tab2 в tab2 для управления plot3 и plot4.

Может кто-нибудь помочь мне, пожалуйста? Спасибо enter image description here

from ipywidgets import interact, interact_manual

import pandas as pd
import numpy as np

from bokeh.io import show, output_notebook, push_notebook
from bokeh.plotting import figure
from bokeh.layouts import gridplot
from bokeh.layouts import row, column, layout
from bokeh.models import CategoricalColorMapper, HoverTool, ColumnDataSource, Panel,FactorRange,LabelSet
from bokeh.models.widgets import CheckboxGroup, Slider, RangeSlider, Tabs,TableColumn, DataTable


output_notebook()


data=[['a',1,6],['a',2,6],['a1',1,3],['a1',2,8],['b',1,11],['b',2,3],['b1',1,21],['b1',2,4]]
df1=pd.DataFrame(data,columns=['group','time','rate'])
df2=df1

@interact
def plot(select4tab1=['a','a1','b','b1'],
         select4tab2=['a','a1','b','b1']):

    data4tab1=df1.loc[(df1.group==select4tab1) ]
    p1=figure(plot_width=400, plot_height=300)
    p1.line(data4tab1.time, data4tab1.rate)

    p2=figure(plot_width=400, plot_height=300)
    p2.circle(data4tab1.time, data4tab1.rate)

    data4tab2=df2.loc[(df2.group==select4tab2) ]
    p3=figure(plot_width=400, plot_height=300)
    p3.line(data4tab2.time, data4tab2.rate,color='red')

    p4=figure(plot_width=400, plot_height=300)
    p4.circle(data4tab2.time, data4tab2.rate,color='red')


    grid1=layout([[p1,p2]])
    tab1=Panel(child=grid1,title='tab1') 


    grid2=layout([[p3,p4]])
    tab2 = Panel(child = grid2, title = 'tab2')



    tabs=Tabs(tabs=[tab1,tab2])
    show(tabs)

1 Ответ

0 голосов
/ 12 мая 2019

Это, вероятно, невозможно, поскольку виджеты Bokeh и ipywidgets обычно не работают вместе или вообще не интегрируются.Чтобы выполнить то, что вы хотите, вы должны использовать виджеты Bokeh Select и встраивать все как серверное приложение Bokeh в блокнот .Я сомневаюсь, что есть какое-то другое решение.

...