[PYTHON] Plotly Trace- und Layout-Vorlagen, die wahrscheinlich in Streudiagrammen verwendet werden

Einführung

Es handelt sich um eine Vorlage für ein Trace-Layout, das beim Zeichnen eines Streudiagramms mit Plot verwendet zu werden scheint Bitte löschen Sie unnötige Teile entsprechend

Umgebung

Mac OS python 3.8.5 plotly 4.12.0

pip

pip install plotly

Trace-Vorlage

import plotly.offline as offline
import plotly.graph_objs as go

import plotly
colors = plotly.colors.DEFAULT_PLOTLY_COLORS
"""
Standardfarbe abrufen
['rgb(31, 119, 180)', 'rgb(255, 127, 14)', 'rgb(44, 160, 44)', 'rgb(214, 39, 40)', 'rgb(148, 103, 189)',
 'rgb(140, 86, 75)', 'rgb(227, 119, 194)', 'rgb(127, 127, 127)', 'rgb(188, 189, 34)', 'rgb(23, 190, 207)']
"""

from plotly.validators.scatter.marker import SymbolValidator
raw_symbols = SymbolValidator().values
"""
Werte, die für Markierungssymbole verwendet werden können
[0, '0', 'circle', 100, '100', 'circle-open',...
Es gibt 474
https://plotly.com/python/marker-style/#custom-marker-symbols
"""
data = []
trace = go.Scatter(
    x=[i for i in range(10)],
    y=[i for i in range(10)],
    yaxis="y1",  #yth?Achse"y2", "y3", "y4", .. https://plotly.com/python/multiple-axes/#multiple-axes
    line=dict(color=colors[0], width=6, dash="dashdot"),
    # dash="dash", "dot" or "dashdot" https://plotly.com/python/line-charts/#style-line-plots

    line_shape="hv",
    #Schritt etc."hv", "vh", "hvh", "vhv", "spline", "liner" https://plotly.com/python/legend/#hiding-the-trace-initially

    marker=dict(color=colors[0], size=10, line=dict(color="red", width=2)),
    # line=Informationen zur Markerkontur https://plotly.com/python/marker-style/#add-marker-border

    mode="lines+markers",
    # "lines", "lines+markers" or "markers" https://plotly.com/python/line-charts/#line-plot-modes

    marker_symbol=raw_symbols[0],  #Geben Sie die Form des Markers https an://plotly.com/python/marker-style/#custom-marker-symbols
    name="sample",  #Wird in der Legende verwendet
    hovertemplate="y: %{y}<br>x: %{x}",
    opacity=1,  #Transparenz 0~1 https://plotly.com/python/marker-style/#color-opacity
    visible=True,  # True, False or legendonly
    showlegend=True,  #Legendenanzeige Richtig oder falsch
    legendgroup="sample"  #Spuren mit derselben Zeichenfolge werden angezeigt/Versteckte Schalter synchronisieren https://plotly.com/python/legend/#grouped-legend-items
)
data.append(trace)

Layoutvorlage

Basic

Titel, X-Achse usw. Wenn Sie dies vorerst haben, können Sie das Diagrammlayout formatieren

layout = go.Layout(
    title=dict(text='<b>sample title</b><br>text', font=dict(size=16)),
    xaxis=dict(title=dict(text='x axis label', font=dict(size=12)), tickfont=dict(size=12), autorange=True),
    # https://plotly.com/python/reference/layout/xaxis/
    
    yaxis=dict(title='y axis label'),
    font=dict(size=16),  #Globale Schriftart
    newshape=dict(line=dict(color="cyan", width=4, dash="solid")),
    # dash='solid', 'dot', 'dash', 'longdash', 'dashdot','longdashdot'
    autosize=True,
    showlegend=True, )

fig = dict(data=data, layout=layout)

offline.plot(fig, include_plotlyjs="cdn", auto_open=True, filename='sample plotly.html', config={
    'modeBarButtonsToAdd': ['drawline', 'drawopenpath', 'drawclosedpath', 'drawcircle', 'drawrect', 'eraseshape']}, )

title=dict(text='<b>sample title</b><br>text' Sie können HTML-Tags anstelle von Zeichenfolgen verwenden, die mit " str </ b>" fett und mit "
" unterbrochen sind Wenn Sie es fett einfärben möchten, z. B. " test </ b>"

Es wurde eine Schaltfläche hinzugefügt, um eine Linie oder einen Kreis in der oberen rechten Ecke der letzten Linie zu zeichnen config={'modeBarButtonsToAdd': ['drawline', 'drawopenpath', 'drawclosedpath', 'drawcircle', 'drawrect', 'eraseshape']}

2. Achse

Setzen Sie yaxis =" y2 " in trace

Wobei yaxis2 =

layout = go.Layout(
    title=dict(text='<b>sample title</b><br>text', font=dict(size=16)),
    xaxis=dict(title=dict(text='x axis label', font=dict(size=12)), tickfont=dict(size=12), tickangle=0),
    # https://plotly.com/python/reference/layout/xaxis/

    yaxis=dict(title="y axis label"),  #Gleich wie xaxis
    yaxis2=dict(title="y2 axis label", overlaying="y", side="right", showgrid=False),
    font=dict(size=16),  #Globale Schriftart
    newshape=dict(line=dict(color="cyan", width=4, dash="solod")),
    # dash='solid', 'dot', 'dash', 'longdash', 'dashdot','longdashdot'
    autosize=True,
    showlegend=True, )

fig = dict(data=data, layout=layout)

offline.plot(fig, include_plotlyjs="cdn", auto_open=True, filename='sample plotly.html', config={
    'modeBarButtonsToAdd': ['drawline', 'drawopenpath', 'drawclosedpath', 'drawcircle', 'drawrect', 'eraseshape']}, )

Andere Dinge zu verwenden

Wenn Sie das Schriftformat von Titel und xaxis ändern möchten, wenn Sie den Bereich von xaxis festlegen möchten, wenn Sie andere Dinge wie Hover und Spike ändern möchten

layout = go.Layout(
    title=dict(text='<b>sample title</b><br>text', font=dict(family="Arial", size=16, color="black")),
    xaxis=dict(title=dict(text='x axis label', font=dict(family="Arial", size=12, color="black")),
               tickfont=dict(family="Arial", size=12, color="black"), type="-", tick0=0, dtick=1, range=[0, 100],
               autorange=True, rangemode="normal", tickangle=0, tickformat="", color="white", showspikes=True,
               spikemode="toaxis", spikecolor="red", domain=[0, 1]),  # https://plotly.com/python/reference/layout/xaxis/

    yaxis=dict(title='y axis label', spikemode="toaxis", domain=[0, 1]),  #Gleich wie xaxis
    font=dict(family="Arial", size=16, color="black"),  #Globale Schriftart
    legend=dict(orientation="h", yanchor="bottom", y=1.02, xanchor="right", x=1),  # orientation=h Zeigen Sie die Legende horizontal an
    newshape=dict(line=dict(color="cyan", width=4, dash="dashdot")),
    # dash='solid', 'dot', 'dash', 'longdash', 'dashdot','longdashdot'

    hovermode='x unified',  # "x", "y", "closest", False, "x unified", "y unified"
    hoverlabel=dict(font=dict(family="Arial", size=20, color="black"), bgcolor="white", bordercolor="black"),
    # paper_bgcolor="#ffffff",  #Farbspezifikation außerhalb des Diagramms
    # plot_bgcolor="#ffffff",  #Farbspezifikation im Plot
    # template="plotly_dark",  #Vorlage https://plotly.com/python/templates/
    autosize=True,
    showlegend=True, )

fig = dict(data=data, layout=layout)

offline.plot(fig, include_plotlyjs="cdn", auto_open=True, filename='sample plotly.html', config={
    'modeBarButtonsToAdd': ['drawline', 'drawopenpath', 'drawclosedpath', 'drawcircle', 'drawrect', 'eraseshape']}, )

xaxis yaxis Geben Sie das Schriftformat, die Größe und die Farbe mit "font = dict (family =" Arial ", size = 16, color =" black ")" an

family="Arial", "Balto", "Courier New", "Droid Sans",, "Droid Serif", "Droid Sans Mono", "Gravitas One", "Old Standard TT", "Open Sans", "Overpass", "PT Sans Narrow", "Raleway", "Times New Roman".

Geben Sie die Achsenwertschriftart mit "tickfont = dict (family =" Arial ", size = 12, color =" black ")" an type =" - ": Wechseln Sie je nach Eingabewert zur Zeitachse oder zur Protokollskala

"-" | "linear" | "log" | "date" | "category" | "multicategory" Default: "-"

tick0: Geben Sie den Mindestwert der Achse an dtick: Geben Sie das Skalierungsintervall der Achse an range = [min, max]: Geben Sie das Maximum / Minimum der anzuzeigenden Achse an autorange = True: Stellt den Bereich automatisch entsprechend dem angegebenen Wert ein und wird bei Eingabe des Bereichs zu False

( True | False | "reversed" )

rangemode: normal: Der Achsenbereich wird durch den Eingabewert bestimmt, tozero: 0 ist der Ursprung, nicht negativ: nicht negativ

Type: enumerated , one of ( "normal" | "tozero" | "nonnegative" ) Default: "normal"

tickangle: Achsenwert-Anzeigewinkel, Standard ist" auto " tickformat: Wenn Sie% usw. anzeigen möchten, ist der Standardwert"" color: Achsenfarbspezifikation (sowohl Beschriftung als auch Häkchen) showspikes: Ein- / Ausblenden von Spikes (gepunktete Linien, die angezeigt werden, wenn sich der Cursor in der Nähe des Diagramms befindet) spikemode: Ändert, wie Spikes angezeigt werden

Type: flaglist string. Any combination of "toaxis", "across", "marker" joined with a "+" Examples: "toaxis", "across", "toaxis+across", "toaxis+across+marker" Default: "toaxis"

spikecolor: Spike color domain`: Geben Sie den Diagrammbereich an, Standard [0, 1], Bereich 0 ~ 1

legend orientation="h", yanchor="bottom", y=1.02, xanchor="right", x=1 Drehe die Legende zur Seite. Richten Sie unten rechts die Diagrammkoordinaten y = 1,02, x = 1 aus. Die Koordinaten sind (x, y) = (0, 0) unten links im Diagramm (blauer Teil innerhalb der Achse) und (x, y) = (1, 1) oben rechts.

hovermode Ändern Sie die Anzeigemethode des Werts, wenn sich der Cursor dem Plot nähert

"x", "y", "closest", False, "x unified", "y unified"

Andere

paper_bgcolor: Farbspezifikation außerhalb des Plots plot_bgcolor: Angabe der Farbe im Plot template: Graph template,"plotly_dark"ist cool https://plotly.com/python/templates/

Zeitachse

Der Wert der x-Achse muss auf Zeit eingestellt sein, z. B. Datum / Uhrzeit

layout = go.Layout(
    title="sample",
    xaxis=dict(title="time", type="date", rangeslider=dict(visible=True), tickformat="%Y/%m/%d %H:%M:%S",
               dtick=86400000.0 / 24),
    yaxis=dict(title='y axis label'),
    font=dict(size=16),
    newshape=dict(line=dict(color="cyan", width=4, dash="solid")),
    hovermode='x unified',
    hoverlabel=dict(font=dict(size=20)),
    autosize=True,
    showlegend=True)

fig = dict(data=data, layout=layout)

offline.plot(fig, include_plotlyjs="cdn", auto_open=True, filename='sample plotly2.html', config={
    'modeBarButtonsToAdd': ['drawline', 'drawopenpath', 'drawclosedpath', 'drawcircle', 'drawrect', 'eraseshape']}, )

type =" date ": Wechseln Sie zur Zeitachse rangelider = dict (sichtbar = True): Ein Schieberegler unter dem Diagramm wurde hinzugefügt, um den Anzeigebereich des Diagramms zu ändern. tickformat: Geben Sie das Zeitanzeigeformat an

"%Y/%m/%d %H:%M:%S" = yyyy/mm/dd HH:MM:SS % y sind die letzten beiden Ziffern des Kalenders

dtick: Geben Sie den Achsenabstand an

"M1" jeden Monat-> "M2" alle zwei Monate "D1" jeden Tag-> "D2" alle zwei Tage Andere werden jeden Tag alle 86400000.0 hinzugefügt (60 * 60 * 24 = 86400000 Sekunden pro Tag)

Schieberegler

Details in einem anderen Artikel Anwendung des Diagramms mit dem Plotly-Schieberegler --Qiita

Referenzseite

offiziell Plotly Python Graphing Library | Python | Plotly

Zeitachsenreferenz Einstellungen für die Anzeige der Datumsachsenbeschriftung: Duschy-Blog

Recommended Posts