निम्नलिखित कोड में 'अप' बटन पर क्लिक करने से मौजूदा आंकड़े को अपडेट करने के बजाय आंकड़ों का अनुक्रम उत्पन्न होता है। एक मौजूदा आंकड़ा कैसे अपडेट करता है?आईपीथॉन नोटबुक विजेट के साथ बोके: अतिरिक्त आंकड़े
from IPython.html import widgets
import bokeh.plotting as bp
from IPython.display import display
from numpy.random import randn
bp.output_notebook()
m = 1000
n = 1000
df = pandas.DataFrame(randn(m, n)).cumsum()
bp.hold()
bp.figure(figsize=(4, 8))
def doplot(i):
bp.line(df.index, df.icol(i), color='red', legend='here')
bp.show()
class A:
def __init__(self):
self.i = 0
self.doplot()
def incr(self, something):
self.i += 1
print(self.i)
self.doplot()
def decr(self, something):
self.i -= 1
self.doplot()
def doplot(self):
doplot(self.i)
a = A()
button = widgets.ButtonWidget(description='up')
button.on_click(a.incr)
buttond = widgets.ButtonWidget(description='down')
buttond.on_click(a.decr)
display(button)
display(buttond)
क्या आप एक प्लॉट के साथ एक प्लॉट चाहते हैं, जो बटन दबाए जाने पर सिंगल लाइन को अपडेट करता है? या आप संभावित रूप से कई लाइनों के साथ साजिश चाहते हैं, जो बटन धक्का दिए जाने पर नई लाइनें जोड़ता है? – bigreddot
दोनों मुझे लगता है। चलो पहले उठाओ। मुख्य बात यह है कि मैं एक साजिश नहीं चाहता हूं। – mathtick
ऐसा करने के लिए वैधानिक तरीका बोके सर्वर शामिल है। आप साजिश के लिए डेटा स्रोत को रोकते हैं, और उसके बाद इसे अद्यतन करते हैं और सर्वर पर धक्का देते हैं, और प्लॉट अपडेट स्वचालित रूप से होते हैं। यहां एक उदाहरण दिया गया है: https://github.com/ContinuumIO/bokeh/blob/master/examples/plotting/notebook/animated.ipynb उस ने कहा, मुझे लगता है कि एक ऐसा फ़ंक्शन जोड़ना संभव होगा जो पुनः- आईपीथॉन नोटबुक में जगह पर एक साजिश खींचती है, लेकिन मुझे विश्वास नहीं है कि यह वर्तमान में किसी भी सरल तरीके से संभव है। – bigreddot