--Erstellen Sie eine Schaltfläche im Diagramm und drücken Sie die Schaltfläche, um das Diagramm ein- / auszublenden.
pip
python
pip install plotly
pip install numpy
Wechseln Sie mit 3 Tasten zwischen 1. und 3. Ordnung, ändern Sie den Titel und die Beschriftung der y-Achse
See the Pen plotly_button by shunta-m (@shunta-m) on CodePen.
python
import numpy as np
import plotly.offline as offline
import plotly.graph_objs as go
x = np.linspace(-5, 5, 11)
y1 = x
y2 = x ** 2
y3 = x ** 3
trace1 = go.Scatter(
x=x,
y=y1,
name="y1",
mode="lines",
line=dict(color="red"),
visible=False,
showlegend=True
)
trace2 = go.Scatter(
x=x,
y=y2,
name="y2",
mode="lines",
line=dict(color="green"),
visible=False,
showlegend=True
)
trace3 = go.Scatter(
x=x,
y=y3,
name="y3",
mode="lines",
line=dict(color="blue"),
visible=False,
showlegend=True
)
data = [trace1, trace2, trace3]
#0te Daten als Ausgangszustand(trace1)Sichtbar sein
data[0].visible = True
"""
Schlüsselbeschreibung
active:Geben Sie die im Ausgangszustand gedrückte Taste an und geben Sie den Listenindex des Tastenwertes der Tasten ein
x:x-Koordinaten im Diagramm(Hellblauer Teil)Das linke Ende von ist 0,Das rechte Ende ist 1, default=-0.05
xanchor:Wo zur x-Koordinatentaste(Rechter Rand, linker Rand usw.)Passen, ("auto" | "left" | "center" | "right"), default="right"
y:x-Koordinaten im Diagramm(Hellblauer Teil)Die Unterkante von ist 0,Top 1, default=1
yanchor:Wo die y-Koordinate zu knöpfen ist(Unterkante, Oberkante usw.)Passen, ( "auto" | "top" | "middle" | "bottom" ), default="top"
direction:Ausrichtung der Tasten, ( "left" | "right" | "up" | "down" ), default="down"
type:Dropdown oder Schaltfläche( "dropdown" | "buttons" ), default="dropdown"
buttons:Tasteneinstellungen
"""
updatemenus = [dict(active=0, x=-0.05, xanchor="right", y=1, yanchor="top", direction="up", type="buttons", buttons=[
dict(label=trace1.name,
method="update",
args=[dict(visible=[True, False, False]),
dict(title="button_plotly_{}".format(trace1.name),
yaxis=dict(title="yaxis_{}".format(trace1.name), showspikes=True))]),
dict(label=trace2.name,
method="update",
args=[dict(visible=[False, True, False]),
dict(title="button_plotly_{}".format(trace2.name),
yaxis=dict(title="yaxis_{}".format(trace2.name), showspikes=True), )]),
dict(label=trace3.name,
method="update",
args=[dict(visible=[False, False, True]),
dict(title="button_plotly_{}".format(trace3.name),
yaxis=dict(title="yaxis_{}".format(trace3.name), showspikes=True))]),
])]
layout = go.Layout(
title="button_plotly_y1",
xaxis=dict(title="xaxis", showspikes=True, domain=[0.05, 1.0]),
yaxis=dict(title="yaxis_y1", showspikes=True),
font=dict(size=16),
legend=dict(orientation="h", yanchor="bottom", y=1.02, xanchor="right", x=1),
newshape=dict(line_color='#00ffff'),
hoverlabel=dict(font_size=20),
autosize=True,
updatemenus=updatemenus,
showlegend=True,
)
fig = dict(data=data, layout=layout)
offline.plot(fig, auto_open=True, include_plotlyjs="cdn", filename=r"./button_plotly.html",
config={'modeBarButtonsToAdd': ['drawline', 'drawopenpath', 'drawclosedpath', 'drawcircle', 'drawrect',
'eraseshape']})
python
"""
Schlüsselbeschreibung
active:Geben Sie die im Ausgangszustand gedrückte Taste an und geben Sie den Listenindex des Tastenwertes der Tasten ein
x:x-Koordinaten im Diagramm(Hellblauer Teil)Das linke Ende von ist 0,Das rechte Ende ist 1, default=-0.05
xanchor:Wo zur x-Koordinatentaste(Rechter Rand, linker Rand usw.)Passen, ("auto" | "left" | "center" | "right"), default="right"
y:x-Koordinaten im Diagramm(Hellblauer Teil)Die Unterkante von ist 0,Top 1, default=1
yanchor:Wo die y-Koordinate zu knöpfen ist(Unterkante, Oberkante usw.)Passen, ( "auto" | "top" | "middle" | "bottom" ), default="top"
direction:Ausrichtung der Tasten, ( "left" | "right" | "up" | "down" ), default="down"
type:Dropdown oder Schaltfläche( "dropdown" | "buttons" ), default="dropdown"
buttons:Tasteneinstellungen
"""
updatemenus = [dict(active=0, x=-0.05, xanchor="right", y=1, yanchor="top", direction="up", type="buttons", buttons=[
dict(label=trace1.name,
method="update",
args=[dict(visible=[True, False, False]),
dict(title="button_plotly_{}".format(trace1.name),
yaxis=dict(title="yaxis_{}".format(trace1.name), showspikes=True))]),
Update-Menüs ist eine Liste von Wörterbüchern Erstellen Sie Schaltflächen für den Schlüsselwert "Schaltflächen" im Wörterbuch
label = trace1.name
: Einstellung der Tastenbezeichnung
method =" update "
: Zum Ändern (Aktualisieren) der Anzeige / Nichtanzeige des Diagramms
method Parent: layout.updatemenus[].buttons[] Type: enumerated , one of ( "restyle" | "relayout" | "animate" | "update" | "skip" ) Default: "restyle"
args=[dict(visible=[True, False, False]),dict(...)]
:
Inhalt der Grafikaktualisierung, das erste Diktat ist die Einstellung für die Plotanzeige / Nichtanzeige
Eine Ablaufverfolgung wird angezeigt, in der der sichtbare Wert True ist.
ex) data = [trace1, trace2, trace3], daher wird trace1 im obigen Fall angezeigt, andernfalls wird es ausgeblendet.
Aktualisieren Sie andere Layouts mit dem zweiten Diktat. Aktualisieren Sie diesmal den Diagrammtitel und die Beschriftung der y-Achse
python
layout = go.Layout(
title="button_plotly_y1",
xaxis=dict(title="xaxis", showspikes=True, domain=[0.05, 1.0]),
yaxis=dict(title="yaxis_y1", showspikes=True),
font=dict(size=16),
legend=dict(orientation="h", yanchor="bottom", y=1.02, xanchor="right", x=1),
newshape=dict(line_color='#00ffff'),
hoverlabel=dict(font_size=20),
autosize=True,
updatemenus=updatemenus,
showlegend=True,
)
Fügen Sie dem Layout die von "updatemenus = updatemenus" erstellte Schaltfläche hinzu
python
fig = dict(data=data, layout=layout)
offline.plot(fig, auto_open=True, include_plotlyjs="cdn", filename=r"./button_plotly.html",
config={'modeBarButtonsToAdd': ['drawline', 'drawopenpath', 'drawclosedpath', 'drawcircle', 'drawrect',
'eraseshape']})
Feigenerstellung und -ausgabe
config = {...}
fügt oben rechts eine Zeichenschaltfläche hinzu
offiziell Custom Buttons | Python | Plotly layout.updatemenus | Python | Plotly
layout.xaxis.domain
Was ist das Domain-Attribut, das in Plotlys Layout geschrieben ist? --Qiita
Recommended Posts