[Python] Erstellen Sie ein Diagramm, das mit Plotly verschoben werden kann

Einführung

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 **.

Ausführungsumgebung

Installation

pip install plotlyPlotly installieren mit.

Datenerfassung

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")

Erstellen eines Diagramms

Initialisieren

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)

Angeben der zu zeichnenden Daten

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")
]

Festlegen des Diagrammlayouts

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"},
)

Handlung

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. aa.gif

Klicken Sie hier für eine einfache Bedienung

Andere Optionen

Die Größe des Diagrammbereichs

layout = plotly.graph_objs.Layout(
    width=800, height=600,
)

Maximal- und Minimalwerte der Achse

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
)

Schriftart

Die Schriftfamilie sollte mit der in CSS angegebenen übereinstimmen.

layout = plotly.graph_objs.Layout(
    font={"family":"Yu Gothic Bold, sans-selif", "size":20},
)

Andere

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.

Entfernen Sie unnötige Schaltflächen und "In Plotly bearbeiten" in der Symbolleiste

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.

buttons.png

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.

Pandas Dataframe-Plot

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.

Plotly Umwandlung von Matplotlib

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)

(Zum Kopieren, wenn Sie vorerst ein Faltliniendiagramm zeichnen möchten)

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)

Recommended Posts

[Python] Erstellen Sie ein Diagramm, das mit Plotly verschoben werden kann
Erstellen Sie ein Währungsdiagramm, das mit Plotly (2) verschoben werden kann.
Erstellen Sie ein Währungsdiagramm, das mit Plotly (1) verschoben werden kann.
Lassen Sie uns ein Diagramm mit Python erstellen! !!
Machen Sie eine schöne Grafik mit Plotly
Lassen Sie uns ein Diagramm erstellen, auf das mit IPython geklickt werden kann
Erstellen Sie eine Spinbox, die mit Tkinter in Binär angezeigt werden kann
Ich habe ein Shuffle gemacht, das mit Python zurückgesetzt (zurückgesetzt) werden kann
Erstellen Sie eine Spinbox, die mit Tkinter in HEX angezeigt werden kann
Memo, mit dem ein Diagramm zum Plotten animiert wurde
Wie man einen Janken-Bot macht, der leicht bewegt werden kann (Kommentar)
Erstellen Sie eine Web-App, die mit Plotly Dash einfach visualisiert werden kann
[Python] Zeichnen Sie mit Plotly Höhendaten auf eine sphärische Oberfläche und zeichnen Sie einen Globus, der rund und rund gedreht werden kann
Raspberry Pi aus der Ferne verschoben, damit es mit Python LED-verbunden werden kann
Hinweise zu Python-Kenntnissen, die mit AtCoder verwendet werden können
Machen Sie eine Lotterie mit Python
Lassen Sie uns eine GUI mit Python erstellen.
Erstellen Sie ein Empfehlungssystem mit Python
Ich habe ein Paket erstellt, das morphologische Analysegeräte mit Python vergleichen kann
[Python] Ein Programm, das Treppen mit # erstellt
Lassen Sie uns mit Python ein Shiritori-Spiel machen
Lassen Sie uns mit Python langsam sprechen
Verstehen Sie die Wahrscheinlichkeiten und Statistiken, die für das Fortschrittsmanagement mit einem Python-Programm verwendet werden können
[Python] Ein Programm, das die maximale Anzahl von Spielzeugen findet, die mit Ihrem Geld gekauft werden können
Eine typisierte Welt, die mit Python beginnt
Erstellen Sie ein Webframework mit Python! (1)
Erstellen Sie eine Desktop-App mit Python mit Electron
Machen wir einen Twitter-Bot mit Python!
Erstellen Sie ein Webframework mit Python! (2)
Ich habe eine generische Python-Projektvorlage erstellt
[Python] Ein Programm, das ein Paar findet, das durch einen bestimmten Wert geteilt werden kann
Ich habe ein Modul PyNanaco erstellt, das Nanaco-Guthaben mit Python belasten kann
[Python] Code, der zu Beginn beim Scraping als Anfänger mit Hirntod geschrieben werden kann
Rufen Sie eine Liste der Kameraparameter ab, die mit cv2.VideoCapture festgelegt werden können, und machen Sie daraus einen Wörterbuchtyp
Dateitypen, die mit Go verwendet werden können
Machen Sie Twitter Trend Bot mit Heroku + Python
[Python] Zeichnen Sie mit Dash Cytoscape ein gerichtetes Diagramm
Ich möchte ein Spiel mit Python machen
Erstellen Sie eine Seite, die unbegrenzt mit Python geladen wird
Sie können auch mit Python problemlos eine GUI erstellen
Versuchen Sie, in Python einen "Entschlüsselungs" -Code zu erstellen
Listen Sie Pakete auf, die mit pip aktualisiert werden können
Ersetzen wir UWSC durch Python (5) Machen wir einen Roboter
Versuchen Sie, mit Python eine Diedergruppe zu bilden
Hinweise zum Erstellen von Zahlen, die mit matplotlib in Zeitschriften veröffentlicht werden können
Klasse für PYTHON, die ohne Kenntnis von LDAP betrieben werden kann
Ich möchte eine Prioritätswarteschlange erstellen, die mit Python (2.7) aktualisiert werden kann.
Ich habe PyQCheck, eine Bibliothek, die QuickCheck mit Python ausführen kann, in PyPI registriert.
Rund um die Authentifizierung von PyDrive2, einem Paket zum Betreiben von Google Drive mit Python
Da Python als "Pichon" gelesen wird, kann es mit "Pichon" ausgeführt werden (es ist eine Geschichte)
Formatieren Sie DataFrame-Daten mit Pytorch in ein Formular, das mit NN trainiert werden kann
So installieren Sie die Python-Bibliothek, die von Pharmaunternehmen verwendet werden kann
Holen Sie sich mit Python den Aktienkurs eines japanischen Unternehmens und erstellen Sie eine Grafik
Wenn Sie eine Windows-App (exe) erstellen möchten, die jetzt nur mit Python verwendet werden kann
Artikel, der eine Person sein kann, die den Mechanismus der API versteht und beherrscht (mit Python-Code)