📅  最后修改于: 2023-12-03 15:38:22.922000             🧑  作者: Mango
Plotly 是一个用于创建交互式可视化的 Python 库。在 Plotly 中,可以很容易地添加图例、轴和注释,以及创建自定义按钮来进行交互操作。本文将介绍如何在 Plotly 中制作自定义按钮。
首先,我们需要导入必要的库和数据。下面的示例使用了 Plotly 的内置数据集 Iris。
import plotly.express as px
import plotly.graph_objects as go
iris = px.data.iris()
接下来,我们需要创建一个交互式图表。可以使用 Plotly Express 或 Graph Objects 中的任何一个来创建图表。
在下面的示例中,我们将使用 Plotly Express 创建一个散点图。
fig = px.scatter(iris, x="sepal_width", y="sepal_length",
color="species", size='petal_length',
hover_data=['petal_width'])
要创建自定义按钮,我们需要使用 Plotly 中的 Button 类。
button1 = dict(label='Setosa',
method='update',
args=[{'visible': [True, False, False]},
{'title': 'Iris Setosa'}])
button2 = dict(label='Versicolor',
method='update',
args=[{'visible': [False, True, False]},
{'title': 'Iris Versicolor'}])
button3 = dict(label='Virginica',
method='update',
args=[{'visible': [False, False, True]},
{'title': 'Iris Virginica'}])
buttons = [button1, button2, button3]
在上面的代码中,我们定义了三个按钮,每个按钮都有一个标签(label)、一个方法(method)和一组参数(args)。按钮的标签将用于在图表中显示按钮。每个按钮的方法定义了可以触发的操作。在这种情况下,method=‘update’表示我们将更新图表的可见性。每个按钮方法的参数都是一个包含可见性和标题的字典。
要将按钮添加到图表中,我们需要使用图表中的 layout 对象。可以使用 layout 中的 updatemenus 属性来添加按钮。
fig.update_layout(
updatemenus=[go.layout.Updatemenu(
buttons=buttons,
direction="down",
showactive=True,
x=0.1,
y=1.2
)]
)
在上面的代码中,我们定义了一个 updatemenus 的属性,并将其设置为一个包含按钮列表的列表。我们还设置了 updatemenus 属性的位置和在菜单中显示活动按钮的方式。
下面是完整的代码片段:
import plotly.express as px
import plotly.graph_objects as go
iris = px.data.iris()
fig = px.scatter(iris, x="sepal_width", y="sepal_length",
color="species", size='petal_length',
hover_data=['petal_width'])
button1 = dict(label='Setosa',
method='update',
args=[{'visible': [True, False, False]},
{'title': 'Iris Setosa'}])
button2 = dict(label='Versicolor',
method='update',
args=[{'visible': [False, True, False]},
{'title': 'Iris Versicolor'}])
button3 = dict(label='Virginica',
method='update',
args=[{'visible': [False, False, True]},
{'title': 'Iris Virginica'}])
buttons = [button1, button2, button3]
fig.update_layout(
updatemenus=[go.layout.Updatemenu(
buttons=buttons,
direction="down",
showactive=True,
x=0.1,
y=1.2
)]
)
fig.show()
以上就是在 Plotly 中制作自定义按钮的步骤,希望对您有所帮助。