[PYTHON] [Visualisierung] Ich habe versucht, Bokeh / plotly zu verwenden! 【Memorandum】

zunaechst

――Dieses Mal habe ich Bokeh und Handlung angesprochen, deshalb möchte ich es als Memorandum im Artikel belassen. ――Bitte beachten Sie, dass dieser Artikel als eigenes Memorandum erstellt wird, indem auf verschiedene Artikel verwiesen wird. ――Bitte beachten Sie, dass dieser Artikel im Rahmen meines Verständnisses verfasst wurde und die Richtigkeit des Inhalts nicht garantiert werden kann. (Bitte lassen Sie mich wissen, wenn Sie einen Fehler machen. ist).

1. Was ist Bokeh?

"Erstens ist bokeh (englisch: bokeh) _ die Schönheit des unscharfen Bereichs, der außerhalb des Brennweitenbereichs der Linse erzeugt wird, und die Ausdrucksmethode, die ihn absichtlich verwendet ([aus Wikipedia](https: /)). /ja.wikipedia.org/wiki/%E3%83%9C%E3%82%B1(%E5%86%99%E7%9C%9F))) " Das stimmt (was ist das?).

Kehren wir nun zur Visualisierungsbibliothek zurück, die mit Python verwendet werden kann. Normalerweise benutze ich matplotlib / seaborn, aber ich kam auf die Idee, dass es etwas gibt, das etwas dynamischer ausgedrückt werden kann (_ ≒ interaktiv_). Die unten angezeigten Grafiken sind alle Bilder und können nicht verschoben werden. Achtung.

1.1 Installation

Laut der offiziellen HP können Sie entweder "conda" oder "pip" installieren.

conda install bokeh or pip install bokeh

1.2 Codierung

Na dann würde ich es gerne machen. Grundsätzlich ist es im Benutzerhandbuch auf der offiziellen Website veröffentlicht.

1.2.1: Bibliothek importieren

from bokeh.plotting import figure, output_file, show

Es ist wie ein Zauber. Es gibt keinen Verlust, an den man sich erinnert.

Lassen Sie uns nun ein Diagramm aus dem nächsten erstellen.

1.2.2: Streumarker (Streumarker)

Erstens ist das Gesamtbild des Codes. Es sieht wie folgt aus.

from bokeh.plotting import figure, output_file, show

#1
output_file('scatter.html') 
p = figure(plot_width=400, plot_height=400)

#2
p.circle([1,2,3,4,5], [6,7,2,4,5], size=20, color='navy', alpha=0.5)

#3
show(p)

Dann sehen Sie die Grafik unten. scatterByBokeh (2).png

Schauen wir uns jeden an.

** # 1: HTML-Datei erstellen & Figur setzen ** Die Ausgabe in Bokeh scheint HTML zu sein, nicht JPEG oder PNG. Das ist also auch wie ein Zauber

output_file('xxx.html')

Da (zumindest ich) daran denke, HTML so zu erstellen, wie es erstellt wird. Die folgende p = Figur (plot_width = 400, plot_height = 400) , aber ich verstehe, dass dies ** eine Operation ist, um einen Raum zum Zeichnen einer Figur ** zu erstellen. Ich verstehe, dass dies so etwas wie fig = plt.figure (...) in matplotlib ist.

** # 2: Addiere den Inhalt des Streudiagramms (diesmal den Kreis) zu p ** Das Folgende ist p.circle (...) , aber ich verstehe dies mit dem Bild des Hinzufügens seines Inhalts zu dem oben erstellten Leerzeichen " p ". Dieses Mal habe ich versucht, mit 〇 zu zeichnen, also verwende ich . Circle *.

Der Inhalt von () ist "x-Achse", "y-Achse" und "Anzeigemethode" von links.

** # 3: Zeichnen ** Wenn Sie eine Figur zeichnen, kann diese mit show (p) (_plt.show () _ in matplotlib) angezeigt werden.

Ich denke, dass die Grundlagen von Bokeh unterdrückt wurden.

1.2.3 Liniendiagramm_

Als nächstes erstellen wir ein Liniendiagramm (die Methode ist fast dieselbe).

from bokeh.plotting import figure, output_file, show

output_file('line.html')
p = figure(plot_width=400, plot_height=400)

p.line([1,2,3,4,5], [6,7,2,4,5], line_width=2)

show(p)

Der Inhalt ist fast der gleiche wie im Streudiagramm. Der einzige Unterschied ist der Teil "Anzeigemethode" von p.line (...) , in dem die Liniendicke (line_width) angegeben ist. Wenn es angezeigt wird, sieht es wie folgt aus.

2020-05-25 (3).png

In diesem Artikel habe ich die rudimentäre Art des Schreibens von Bokeh vorgestellt, aber ich hoffe, dass jeder die schleimige bewegte Figur erleben kann, indem er sie mit der Maus bewegt. Persönlich dachte ich, dass es für dynamische Präsentationen nützlich wäre (ich denke, Matplotlib und Seaborn sind ausreichend für die Herstellung von ppt-Materialien).

2. Was ist Handlung?

Es scheint, dass es kostenlose und einige kostenpflichtige Visualisierungsbibliotheken gibt, die von plotly bereitgestellt werden. Weitere Informationen finden Sie auf der offiziellen Website unten.

2.1 Installation

Lassen Sie uns nun die Installation planen. Wie Bokeh können Sie es mit Pip oder Conda tun.

pip install plotly conda install -c plotly plotly=4.7.1 (aus dem offiziellen Dokument)

Machen wir das! Es ist jedoch notwendig, eine andere Möglichkeit zu entwickeln, um es mit jupyter notebook auszuführen. Laut der offiziellen HP, um plotly mit jupyter Notebook zu verwenden

conda install "notebook>=5.3" "ipywidgets>=7.2"

Es ist notwendig zu tun. Im Fall von jupyter lab

conda install jupyterlab "ipywidgets=7.5"

Es ist notwendig zu tun.

2.2: Codierung

2.2.1: Bibliothek importieren

import plotly.express as px

Verwenden wir zunächst eine Bibliothek namens plotly.express.

2.2.3: Streudiagramm

Das große Bild des Codes ist unten.

import plotly.express as px

x = [1,2,3,4,5]
y = [6,7,2,4,5]

fig = px.scatter(x=x, y=y)
fig.show()

Wenn Sie dies tun, newplot.png

Ein solches Diagramm wird angezeigt. (Im Gegensatz zur Formel sind die Daten dieselben wie die in Bokeh verwendeten.) Es ist sehr einfach zu bedienen, ohne es erklären zu müssen (ich dachte, es wäre ähnlich wie Matplotlib).

Der Unterschied zu Matplotlib und Bokeh besteht darin, dass der Achsname aufgeführt wird, obwohl der Achsname (label) nicht angegeben ist.

Da ich die Anzeigemethode oben nicht angegeben habe, möchte ich sie mit pandas.DataFrame kombinieren und auch verschiedene Einstellungen ausprobieren.

df = px.data.iris() #Stellen Sie die Irisdaten als Datenrahmen ein

fig = px.scatter(df, x=df.sepal_length, y=df.sepal_width,
                 color=df.species, size=df.petal_length)

fig.show()

Dann wird das folgende Diagramm ausgegeben. iris_plotting.png

Ich werfe px.sctter (...) in die Figur und nehme verschiedene Einstellungen in () vor.

1 2 3
dataframe Daten lesen df
x= Einstellungen für die x-Achse(Daten+Einstellung des Achsnamens) df.sepal_length
y= Einstellung der y-Achse(Daten+Einstellung des Achsnamens) df.sepal_width
color= Farbeinstellungen(Der Inhalt der eingestellten Spalte wird wiedergegeben) df.species
size= Kreisgröße(Der Inhalt der eingestellten Spalte wird wiedergegeben) df.petal_length

Lassen Sie uns zunächst einen kurzen Blick auf die Daten von Iris werfen.

df.head()
sepal_length sepal_width petal_length petal_width species species_id
0 5.1 3.5 1.4 0.2 setosa 1
1 4.9 3.0 1.4 0.2 setosa 1
2 4.7 3.2 1.3 0.2 setosa 1
3 4.6 3.1 1.5 0.2 setosa 1
4 5.0 3.6 1.4 0.2 setosa 1

--df: Ich lese einen Datenrahmen. --x =, y =: x Achse, y Achse werden gesetzt. Hierbei ist zu beachten, dass die darin enthaltenen Daten angegeben werden und der Achsname auch als Spaltenname verwendet wird. --color =: Hier klassifizieren wir mit species. --size =: Die Größe des Kreises wird festgelegt. Hier wird "Blütenblattlänge" verwendet, um die Größe des Kreises auszudrücken.

Ich denke, das Interessante an Plotly ist, dass beim Berühren der Daten in der Grafik mit dem Mauszeiger angezeigt wird, was in den Daten enthalten ist. Ich werde diesmal nicht darauf eingehen, aber 3D-Daten sind visuell sehr einfach zu verstehen.

Es funktioniert anders als Matplotlib und Bokeh, also muss man es benutzen, um sich daran zu gewöhnen, aber es ist sehr interessant.

Schließlich

das ist alles.

Recommended Posts

[Visualisierung] Ich habe versucht, Bokeh / plotly zu verwenden! 【Memorandum】
Ich habe versucht, parametrisiert zu verwenden
Ich habe versucht, Argparse zu verwenden
Ich habe versucht, Mimesis zu verwenden
Ich habe versucht, anytree zu verwenden
Ich habe versucht, aiomysql zu verwenden
Ich habe versucht, Summpy zu verwenden
Ich habe versucht, Coturn zu verwenden
Ich habe versucht, Pipenv zu verwenden
Ich habe versucht, Matplotlib zu verwenden
Ich habe versucht, "Anvil" zu verwenden.
Ich habe versucht, Hubot zu verwenden
Ich habe versucht, ESPCN zu verwenden
Ich habe versucht, openpyxl zu verwenden
Ich habe versucht, Ipython zu verwenden
Ich habe versucht, PyCaret zu verwenden
Ich habe versucht, Cron zu verwenden
Ich habe versucht, face_recognition zu verwenden
Ich habe versucht, Jupyter zu verwenden
Ich habe versucht, doctest zu verwenden
Ich habe versucht, jinja2 zu verwenden
Ich habe versucht, Folium zu verwenden
Ich habe versucht, das Zeitfenster zu verwenden
[Ich habe versucht, Pythonista 3 zu verwenden] Einführung
Ich habe versucht, easydict (Memo) zu verwenden.
Ich habe versucht, das Gesicht mit Face ++ zu erkennen
Ich habe versucht, BigQuery ML zu verwenden
Ich habe versucht, Amazon Glacier zu verwenden
Ich habe versucht, Git Inspector zu verwenden
Ich habe versucht, AWS Chalice zu verwenden
Ich habe versucht, Slack Emojinator zu verwenden
Ich habe versucht, Tensorboard zu verwenden, ein Visualisierungstool für maschinelles Lernen
Ich habe versucht, Rotrics Dex Arm # 2 zu verwenden
Ich habe versucht, Thonny (Python / IDE) zu verwenden.
Ich habe versucht, mit dem Server-Client über tmux zu kommunizieren
Ich habe versucht, mit PyBrain verstärkt zu lernen
Ich habe versucht, mit Theano tief zu lernen
Ich habe irgendwie versucht, ein Jupyter-Notebook zu verwenden
[Kaggle] Ich habe versucht, mit unausgeglichenem Lernen zu unterabtasten
Ich habe versucht, mit OpenPose eine Schildkrötenwelle zu schießen
Ich habe versucht, die checkio-API zu verwenden
Ich habe versucht, asynchrone Verarbeitung mit Asyncio
Plotly Memorandum
Ich habe versucht, Amazon SQS mit Django-Sellerie zu verwenden
Ich habe versucht, Azure Speech to Text zu verwenden.
Ich habe versucht, ○ ✕ mit TensorFlow zu spielen
Ich habe versucht, Selen mit Headless-Chrom zu verwenden
Ich habe versucht, mit einer Schildkröte eine Linie zu ziehen
[Kaggle] Ich habe versucht, Ensemble mit LightGBM zu lernen
Ich habe das OSS-Visualisierungstool superset ausprobiert
Ich habe versucht, PyEZ und JSNAPy zu verwenden. Teil 2: Ich habe versucht, PyEZ zu verwenden
Ich habe versucht, die Bayes'sche Optimierung von Python zu verwenden
Ich habe versucht, Text mit TensorFlow zu klassifizieren
Ich habe versucht, die selektive Suche als R-CNN zu verwenden
Ich habe versucht, pipenv zu verwenden, machen Sie sich also eine Notiz
Ich habe versucht, die BigQuery-Speicher-API zu verwenden