यह स्पष्ट रूप से एक देर से उत्तर है, लेकिन मैं वर्तमान में करने के लिए अजगर और बोकेह जानने के लिए कोशिश कर रहा हूँ इस बीच, यहां एकाधिक चयन करें विजेट का उपयोग एक समाधान नहीं है कुछ प्रकार के डेटा डैशबोर्ड को हैक करें। मैं यह पता लगाने की कोशिश कर रहा था कि चेकबॉक्स कैसे काम करते थे और मैंने आपके प्रश्न पर ठोकर खाई। यह समाधान केवल बोके सेवा के साथ काम करता है। मुझे नहीं पता कि इसे HTML आउटपुट में कैसे काम करना है।
मैं केवल लाइन दृश्यता को संशोधित कर रहा हूं, न कि स्रोत। मैंने अभी तक यह कोशिश नहीं की लेकिन मुझे यकीन है कि किंवदंतियों अभी भी अदृश्य लाइनों
डक्ट टेप कोड के लिए माफी दिखाएगी।
#-| bokeh serve
#-|
import pandas as pd
from bokeh.io import curdoc,output_file, show
from bokeh.layouts import row, widgetbox
from bokeh.plotting import figure
from bokeh.models import ColumnDataSource
from bokeh.models.widgets import *
#Widgets
ticker = TextInput(title='Ticker Symbol',value='IBM')
button=Button(label='Lookup',button_type='success')
log = Paragraph(text="""log""",
width=200, height=100)
cb_group = CheckboxButtonGroup(labels=['Close', 'Adj Close'],active=[0,1])
cb_group.labels.append('Placebo')
#Plot
p = figure(title='',width=500, height=250, x_axis_type='datetime')
source = ColumnDataSource({'x': [], 'y1': [],'y2': []})
lineClose=p.line('x','y1',source=source, color='navy', alpha=0.5)
lineAdj=p.line('x','y2',source=source, color='red', alpha=0.5)
lines=[lineClose,lineAdj]
#Event handling
def error(msg):
log.text=msg
def update_data():
try:
src='http://ichart.yahoo.com/table.csv?s={symb}&a=0&b=1&c=2011&d=0&e=1&f=2016'.format(symb=ticker.value)
df=pd.read_csv(src,parse_dates=['Date'])
source.data=({'x': df['Date'], 'y1': df['Close'],'y2': df['Adj Close']})
except:
error('Error ticker')
def update_plot(new):
switch=cb_group.active
for x in range(0,len(lines)):
if x in switch:
lines[x].visible=True
else:
lines[x].visible=False
error('<CheckboxButtonGroup>.active = '+str(switch))
button.on_click(update_data)
cb_group.on_click(update_plot)
inputs=widgetbox(ticker,button,cb_group,log)
curdoc().add_root(row(inputs,p,width=800))
curdoc().title = 'Bokeh Checkbox Example'
button.clicks=1
मैं अगर मैं चेकबॉक्स समूह बजाय ठेठ विधि को संलग्न कर सकता है तो मैं वहाँ एक रास्ता अधिक सुंदर ढंग से और गतिशील रूप से चेक बॉक्स को जोड़ने के लिए है यकीन है कि देखने के लिए 'प्लेसबो' चेकबॉक्स गयी।
what it should look like
उदाहरण के लिए धन्यवाद। मैं मोटे तौर पर कॉलम की मनमानी संख्या के डेटाफ्रेम पर इसे विस्तारित करने के तरीके को देख सकता हूं। ColumnDataSource के लिए जेनरेट आईडी स्ट्रिंग की एक सूची बनाएं। फिर कस्टमजेएस में उन तारों को प्लग करने के लिए string.format() करें जिन्हें विस्तारित करने की भी आवश्यकता है। बड़ी तस्वीर को देखते हुए, ऐसा लगता है कि बोके में प्लॉटली की कुछ कार्यक्षमता की कमी है लेकिन यहां तक कि यहां कुछ चीजें गायब हैं। पायथन-जावास्क्रिप्ट इंटरफ़ेस समस्याग्रस्त है। मैं शुद्ध जेएस समाधानों को देखने के लिए प्रेरित हूं जो पायथन द्वारा जेएसओएन फाइलों को खिलाते हैं। – Spinor8
हाँ, यह उत्तर बड़ी संख्या में लाइनों के लिए बहुत सुंदरता से स्केल नहीं करता है। बड़ी तस्वीर, मैं मानता हूं कि अब तक बोके थोड़ा सीमित लगता है, लेकिन मैं थोड़ी देर के लिए इसके साथ खेल रहा हूं, इसलिए मुझे उम्मीद है कि यह समय के साथ सुधार होगा। मुझे लगता है कि शुद्ध जेएस का विकास निश्चित रूप से इस तरह की चीज़ों में से किसी के लिए भुगतान करेगा - शायद बोके में योगदान दे रहा है ?! – Peter