Interactive plot with Slider using Plotly(使用 Plotly 的 Slider 交互式绘图)
问题描述
如何使用 Plotly 在 Python 中重新创建以下交互式绘图?
How do I recreate the following interactive plot in Python using Plotly?
我的简单示例绘制了一个条形图,其中一列 x 和另一列 1-x.
My simple example draws a bar chart with one column x and another 1-x.
来自 Mathematica 的 GIF:
GIF from Mathematica:
滑块允许在 0 和 1 之间变化 x.
Slider allows for a varying x between 0 and 1.
数学代码:
Manipulate[BarChart[{x, 1 - x}, PlotRange -> {0, 1}],
{{x, 0.3, "Level"}, 0, 1, Appearance -> "Open"}]
<小时>
更新
这是一个我不喜欢的解决方案:
Here is a solution which I don't like:
import plotly.graph_objs as go
from plotly.offline import init_notebook_mode, iplot
init_notebook_mode(connected=True)
import ipywidgets as widgets
绘图:
def update_plot(x):
data = [go.Bar(
x=['1', '2'],
y=[x, 1-x]
)]
iplot(data, show_link=False)
x = widgets.FloatSlider(min=0, max=1, value=0.3)
widgets.interactive(update_plot, x=x)
这个问题:
- 当滑块移动时,情节会闪烁
- 滑块放错位置
- 增量不够细化
- 我自己无法指定准确的值
推荐答案
从 Plotly 3.0 开始,可以按如下方式实现(在 JupyterLab 中):
Starting from Plotly 3.0 this can be achieved as follows (in JupyterLab):
import plotly.graph_objects as go
from ipywidgets import interact
fig = go.FigureWidget()
bar = fig.add_bar(x=['x', '1-x'])
fig.layout = dict(yaxis=dict(range=[0,1]), height=600)
@interact(x=(0, 1, 0.01))
def update(x=0.3):
with fig.batch_update():
bar.y=[x, 1-x]
fig
更新:
从 Plotly 4.0 开始,您需要指定 fig.data[0].y
而不是 bar.y
.
From Plotly 4.0 you need to specify fig.data[0].y
instead of bar.y
.
这篇关于使用 Plotly 的 Slider 交互式绘图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:使用 Plotly 的 Slider 交互式绘图
基础教程推荐
- 何时使用 os.name、sys.platform 或 platform.system? 2022-01-01
- 如何让 python 脚本监听来自另一个脚本的输入 2022-01-01
- 如何在海运重新绘制中自定义标题和y标签 2022-01-01
- 线程时出现 msgbox 错误,GUI 块 2022-01-01
- 筛选NumPy数组 2022-01-01
- 在 Python 中,如果我在一个“with"中返回.块,文件还会关闭吗? 2022-01-01
- Python kivy 入口点 inflateRest2 无法定位 libpng16-16.dll 2022-01-01
- 用于分类数据的跳跃记号标签 2022-01-01
- Dask.array.套用_沿_轴:由于额外的元素([1]),使用dask.array的每一行作为另一个函数的输入失败 2022-01-01
- 使用PyInstaller后在Windows中打开可执行文件时出错 2022-01-01