gpt4 book ai didi

jupyter-notebook - 如何在离线模式下更新绘图(Jupyter笔记本)

转载 作者:行者123 更新时间:2023-12-02 07:30:40 36 4
gpt4 key购买 nike

我想在 Jupyter Notebook(离线模式)中使用plotly 和 ipywidgets 构建一个简单的界面,并且我想知道如果我想添加额外的数据如何更新绘图。这是我的代码:

import plotly
from plotly.offline import iplot
from plotly.graph_objs import graph_objs as go
import ipywidgets as widgets
from IPython.display import display

plotly.offline.init_notebook_mode(connected=True)

trace_high = go.Scatter(
x=[1,2,3,4],
y=[4,6,2,8],
name = "High",
line = dict(color = '#7F7F7F'),
opacity = 0.8)


data = [trace_high]

def plot_extra_data(drop):
if drop["new"] == "2":
trace_low = go.Scatter(
x=[1,2,3,4],
y=[1,7,3,5],
name = "Low",
line = dict(color = 'green'),
opacity = 0.8)
data.append(trace_low)
fig.update(data=data)

drop = widgets.Dropdown(
options=['1', '2', '3'],
value='1',
description='Number:',
disabled=False,
)

drop.observe(plot_extra_data, "value")

display(drop)
fig = dict(data=data)
iplot(fig)

非常感谢任何意见/建议。

最佳答案

疯狂的是,每个人似乎都对与离线绘图图表交互感到困惑!

利用属性分配的优势仍然相当简单(例如,请参阅此 documentation,尽管它现在已部分弃用)。

当用户通过下拉小部件进行交互时,下面的简单代码片段示例会更新plotly.graph_objs.FigureWidget()。事实上,包含图表 x 轴和 y 轴数据的 pandas.DataFrame() 是沿着用户想要显示折线图的 Commodity 维度进行切片的。

如果您使用的是 jupyterlab,最繁琐的部分可能是设置所有额外的库要求

import pandas as pd
import plotly.graph_objs as go
import ipywidgets as widgets

df = pd.DataFrame({'cmdty' : ['beans', 'beans', 'beans', 'corn', 'corn', 'corn'],
'month' : [1, 2, 3, 1, 2, 3],
'value' : [10.5, 3.5, 8.0, 5.0, 8.75, 5.75]})

items = df.cmdty.unique().tolist()

cmdty = widgets.Dropdown(options=items,
description='Commodity')

def response(change):
c = cmdty.value
df_tmp = df[df.cmdty == c]
x0 = df_tmp['month'] # Useless here as x is equal for the 2 commodities
x1 = df_tmp['value']
fig.data[0].x = x0 # Useless here as x is equal for the 2 commodities
fig.data[0].y = x1

fig = go.FigureWidget(data=[{'type' : 'scatter'}])

cmdty.observe(response, names='value')
display(widgets.VBox([cmdty, fig]))

关于jupyter-notebook - 如何在离线模式下更新绘图(Jupyter笔记本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50399321/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com