[PYTHON] Plotly Erstellen Sie ein Diagramm mit einer Schaltfläche

Was du machen willst

--Erstellen Sie eine Schaltfläche im Diagramm und drücken Sie die Schaltfläche, um das Diagramm ein- / auszublenden.

Umgebung

pip

python


pip install plotly
pip install numpy

Beispieldiagramm

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']})

Einzelheiten

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

Referenzseite

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

Plotly Erstellen Sie ein Diagramm mit einer Schaltfläche
Machen Sie eine schöne Grafik mit Plotly
Erstellen Sie ein Diagramm mit Rändern, die mit matplotlib entfernt wurden
Memo, mit dem ein Diagramm zum Plotten animiert wurde
Kerzenbeine mit Plot + Jupyter
Banddiagramm mit Matplotlib
Erstelle Spiele mit Pygame
Erstellen Sie einen Filter mit scipy
Erstellen Sie ein Diagramm mit der Plot-Schaltfläche und dem Schieberegler
Kerzendiagrammplot mit Plotly
Zeichnen Sie Excel-Daten mit matplotlib (1)
Erstellen Sie eine Umgebung mit virtualenv
Zeichnen Sie mit NetworkX ein Diagramm
Erstellen Sie Cloud-TPU mit tf-nightly
Erstellen Sie eine API mit Django
Erstellen / Suchen / Erstellen einer Tabelle mit PynamoDB
Erstellen Sie ein 3D-GIF mit Python3
Erstellen Sie eine Homepage mit Django
Diagrammzeichnungsmethode mit matplotlib
Zeichnen Sie Excel-Daten mit matplotlib (2)
Erstellen Sie den Image Viewer mit Tkinter
SVG-Diagramm mit matplotlib mit Heroku erstellen (auf Japanisch angezeigt)
Erstellen Sie benutzerdefinierte Regeln mit ElastAlert
Erstellen Sie eine Patentkarte mit Streamlit
[Visualisierung] Ich möchte mit Plotly ein schönes Diagramm zeichnen
Erstellen Sie ein Verzeichnis mit Python
Zeichnen Sie mit networkx ein Diagramm
Diagrammzeichnung mit IPython Notebook
Erstellen Sie eine Xlsx-Datei mit XlsxWriter
Erstellen Sie eine Plotanimation mit Python + Matplotlib
Erstellen Sie Awaitable mit der Python / C-API
Zeichne ein Diagramm mit Julia + PyQtGraph (2)
Veröffentlichen Sie schöne Grafiken online mit plotly
[AWS] API mit API Gateway + Lambda erstellen
Lernen Sie mit PyTorch Graph Convolutional Networks
Zeichnen Sie mit matplotlib ein loses Diagramm
Erstellen Sie eine virtuelle Umgebung mit Python!
Zeichne ein Diagramm mit Julia + PyQtGraph (1)
Zeichne ein Diagramm mit Julia + PyQtGraph (3)
Anrufdiagramm mit PyCallGraph ausgeben
Machen wir ein LGTM-Bild mit GIMP! (Python-Fu)
Erstellen Sie mit SoX rauschgefüllte Audiodaten
Erstellen Sie mit Smart Trade grundlegende Algorithmen
Zeichnen Sie ein Diagramm mit Pandas + XlsxWriter
Erstellen Sie eine API mit hug mit mod_wsgi
Erstellen Sie eine Altersgruppe mit Pandas
Lassen Sie uns ein Diagramm mit Python erstellen! !!
Erstellen Sie einen Poisson-Stepper mit numpy.random
Erstellen Sie Github-Seiten mit Lektor Part 1
Zeichnen Sie ein Diagramm mit der PySimple-Benutzeroberfläche
NetzwerkX-Diagramm mit graphviz ausgeben (PyGraphviz)
Graphbasierte Segmentierung mit Python + OpenCV
Erstellen Sie mit Django einen Datei-Uploader
Plotten Anwenden von Diagrammen mit Schiebereglern
Erstellen Sie eine Web-App, die mit Plotly Dash einfach visualisiert werden kann
Erstellen Sie eine Python3-Umgebung mit pyenv auf einem Mac und zeigen Sie NetworkX-Diagramme an