Beschreibt die grundlegende Verwendung von Plotly, einer Bibliothek, die von Python aus verwendet werden kann. Wie Sie dem Beispiel Link entnehmen können, können Sie mit Plotly eine Vielzahl von ** sich bewegenden ** Diagrammen erstellen. ..
Darüber hinaus verfügt Plotly über eine Funktion, mit der Sie das erstellte Diagramm im Web bearbeiten und veröffentlichen können. Dieses Mal werden wir ** alles lokal ausführen **.
pip install plotly
Plotly installieren mit.
Als Beispiel [Wikipedia](https://ja.wikipedia.org/wiki/%E6%97%A5%E6%9C%AC%E3%81%AE%E4%BA%BA%E5%8F%A3% Lassen Sie uns die Daten zur Anzahl der Geburten und zur Geburtenrate für jedes Jahr in Japan grafisch darstellen (aufgenommen von E7% B5% B1% E8% A8% 88). Platzieren Sie die folgenden Daten als "irth.csv "im selben Ordner wie die Jupyter-Datei.
year,births,birth rate
2000,1190547,1.36
2001,1170662,1.33
2002,1153855,1.32
2003,1123610,1.29
2004,1110721,1.29
2005,1062530,1.26
2006,1092674,1.32
2007,1089818,1.34
2008,1091156,1.37
2009,1070035,1.37
2010,1071304,1.39
2011,1050806,1.39
2012,1037101,1.41
2013,1029816,1.43
2014,1003532,1.42
2015,1005656,1.46
Es ist praktisch, Pandas zum Importieren und Bearbeiten von Daten zu verwenden. Pandas werden automatisch eingeschlossen, wenn Sie Anaconda installieren.
import pandas as pd
raw = pd.read_csv("birth.csv")
Führen Sie zunächst den folgenden Code aus, um in Jupyter zu zeichnen. Nicht erforderlich, wenn nicht in Jupyter angezeigt. Wenn Sie im Argument "verbunden" auf "Wahr" setzen, erhalten Sie Plotlys Javascript aus dem Internet.
import plotly
plotly.offline.init_notebook_mode(connected=False)
Geben Sie dann die zu zeichnenden Daten an. Dieses Mal wird die Anzahl der Geburten durch ein Balkendiagramm und die Geburtenrate durch ein gestricheltes Liniendiagramm dargestellt. Bereiten Sie ein Array mit dem Namen "data" vor. Wenn es sich um ein Balkendiagramm handelt, "plotly.graph_objs.Bar". Geben Sie für ein Diagramm mit unterbrochenen Linien die Daten der X- und Y-Achse sowie den Seriennamen in "plotly.graph_objs.Scatter" an. Sie können auf der zweiten Achse zeichnen, indem Sie "yaxis =" y2 "" angeben.
data = [
plotly.graph_objs.Bar(x=raw["year"], y=raw["births"], name="Births"),
plotly.graph_objs.Scatter(x=raw["year"], y=raw["birth rate"], name="Birth Rate", yaxis="y2")
]
Geben Sie als Nächstes das Layout des Diagramms an. Legen Sie den Titel des Diagramms, die Position der Legende und die zweite Achse fest.
layout = plotly.graph_objs.Layout(
title="Births and Birth Rate in Japan",
legend={"x":0.8, "y":0.1},
xaxis={"title":"Year"},
yaxis={"title":"Births"},
yaxis2={"title":"Birth Rate", "overlaying":"y", "side":"right"},
)
Wenn Sie es in Jupyter anzeigen möchten, rufen Sie "iplot" auf, um ein Diagramm zu erstellen.
Rufen Sie plot
auf, wenn Sie es außerhalb von Jupyter anzeigen oder HTML erstellen möchten. Wenn Sie keinen Dateinamen als Option angeben, wird `` `temp-plot.html``` im selben Ordner erstellt.
fig = plotly.graph_objs.Figure(data=data, layout=layout)
plotly.offline.iplot(fig)
#plotly.offline.plot(fig)
Ein solches Diagramm wird erstellt.
Klicken Sie hier für eine einfache Bedienung
layout = plotly.graph_objs.Layout(
width=800, height=600,
)
Wenn Sie nur die Maximal- und Minimalwerte festlegen möchten, geben Sie die Option "Bereich" für "Achse" an. Wenn Sie die Skala von vorne beginnen oder keine negativen Zahlen anzeigen möchten Geben Sie für die Option "Bereichsmodus" "auf Null" oder "nicht negativ" an.
layout = plotly.graph_objs.Layout(
xaxis={"title":"Year", "range": [2010, 2016]}, #from year 2010 to 2016
yaxis={"title":"Births", "rangemode":"tozero"}, #starts from zero
)
Die Schriftfamilie sollte mit der in CSS angegebenen übereinstimmen.
layout = plotly.graph_objs.Layout(
font={"family":"Yu Gothic Bold, sans-selif", "size":20},
)
Darüber hinaus können Sie in Plotly Details angeben. Informationen zu diesen Optionen finden Sie auf der Plotly-Website (https://plot.ly/python/#layout-options) oder bei Google.
Für Daten, die Sie nicht lokal verlieren möchten, sehen Sie in dem von Ihnen erstellten Diagramm die Schaltflächen "Diagramm in Cloud speichern und bearbeiten" und "Mit Plot erstellt" und den Link "In plot.ly exportieren". Es ist nicht gut. Daher werde ich diese nicht anzeigen.
Zunächst können Sie "Export to plot.ly" löschen, indem Sie beim Plotten "show_link = False" angeben.
plotly.offline.iplot(fig, show_link=False)
#plotly.offline.plot(fig, show_link=False)
Die Option zum Ausblenden der Schaltflächen in der Symbolleiste ist andererseits ~~ Post StackOverflow und [ Da die zugehörige Pull-Anforderung (https://github.com/plotly/plotly.py/pull/410) nicht zusammengeführt wird, scheint sie nicht zu existieren. Daher werden wir die Methode zum Bearbeiten von plotly.min.js im Ordner von Plotly verwenden, der von init_notebook_mode
geladen wird. ~~
Bevor ich es wusste, konnte ich es als Argument von iplot weitergeben.
plotly.offline.iplot(fig, show_link=False, config={"displaylogo":False, "modeBarButtonsToRemove":["sendDataToCloud"]})
Sie können es löschen, indem Sie dies tun.
Mit einer Bibliothek namens Manschettenknöpfe können Sie einen Plot von Dataframe zeichnen, indem Sie einfach "df.iplot ()" schreiben. Siehe [Python] Zeichnen von Pandas-Datenrahmen in Plotly mit Manschettenknöpfen.
Sie können ein mit matplotlib.pyplot geschriebenes Diagramm in ein interaktives Diagramm von Plotly ändern, indem Sie einfach iplot_mpl (fig) eingeben.
import matplotlib.pyplot as plt
import plotly.offline
plotly.offline.init_notebook_mode()
fig = plt.figure()
plt.plot([1,3,4,2,1,3])
plotly.offline.iplot_mpl(fig)
Wenn Sie jedoch eine Legende hinzufügen möchten, müssen Sie einige Anstrengungen unternehmen. Ist sie also noch in der Entwicklung?
import matplotlib.pyplot as plt
import plotly.offline
import plotly.tools
plotly.offline.init_notebook_mode()
fig = plt.figure()
plt.plot([1,3,4,2,1,3], label="legend")
plt.title("title")
# plt.legend()Ich brauche nicht
plotly_fig = plotly.tools.mpl_to_plotly( fig )
plotly_fig['layout']['showlegend'] = True
plotly.offline.iplot(plotly_fig, show_link=False)
import plotly
plotly.offline.init_notebook_mode()
data = [
plotly.graph_objs.Scatter(y=[2,3,1,2,5,2], name="legend"),
plotly.graph_objs.Scatter(x=[1,2,3,4,5,6], y=[1,2,3,2,3,1], name="legend2"),
]
layout = plotly.graph_objs.Layout(
title="title",
xaxis={"title":"xlabel"},
yaxis={"title":"ylabel"},
)
fig = plotly.graph_objs.Figure(data=data, layout=layout)
plotly.offline.iplot(fig, show_link=False)