[PYTHON] Einführung in das Potenzial von Plotlys Streudiagramm anhand praktischer Beispiele

Hallo! Dieser Artikel ist Kaggles Adventskalender, Streudiagramm der Python-Datenvisualisierungsbibliothek "Plotly" Ich dachte, es würde gut zu Wettbewerben wie Kaggle passen, deshalb möchte ich es vorstellen.

Zunächst möchte ich, dass Sie sich ein konkretes Beispiel ansehen. ** Spezifisches Beispiel 1 ** Zeichnen Sie die verteilte Darstellung von Wörtern in drei Dimensionen tsne2-compressor.gif

** Spezifisches Beispiel 2 ** Zeichnen Sie Mietdaten von 23 Bezirken Tokios auf Kartendaten mynabi-compressor (1).gif

Was denken Sie! Die Stärke ist, dass diese informativen Darstellungen nur wenige Zeilen umfassen. Es gibt viele Visualisierungsbibliotheken für Python, Ich denke, Plotly hat die folgenden einzigartigen Eigenschaften.

Schauen wir uns die Notation des vorherigen Diagramms genauer an.

Umgebung

Python 3.7.4 plotly 4.1.0

Spezifisches Beispiel 1

Verwendeter Datensatz

Wir haben eine dimensional komprimierte Version der verteilten Darstellung von Wörtern vorbereitet. Dieses Mal verwendet der Korpus Text8, das Lernen verwendet die word2vec-Klasse von gensim und die Dimensionskomprimierung verwendet t-sne. Speichern Sie die vorbereitete verteilte Darstellung und Wörter im Pandas DataFrame. Screen Shot 2019-12-03 at 16.29.19.png

(Für text8 habe ich auf https://hironsan.hatenablog.com/entry/japanese-text8-corpus verwiesen.)

Code

import plotly.express as px
fig = px.scatter_3d(df, x='x', y='y', z='z',text='word')
fig.show()

Erläuterung

Sie können in nur 3 Zeilen schreiben. Wenn Sie den Spaltennamen an den Datenrahmen und den Text x, y, z bzw. übergeben, ist dieser wie oben beschrieben Grundstücke sind möglich.

Spezifisches Beispiel 2

Verwendeter Datensatz

Ich habe die Daten von My Navi x SIGNATE Student Cup 2019 verwendet. Mehr über den Wettbewerb können Sie in meinem Blog lesen. http://zerebom.hatenablog.com/entry/2019/11/09/121233?_ga=2.241090371.157833494.1575468424-1743001014.1569899454

Bei diesem Wettbewerb sollte die Miete jeder Immobilie anhand der Mietinformationen in den 23 Bezirken Tokios vorhergesagt werden. https://signate.jp/competitions/182

Ich habe diese Daten formatiert und den folgenden DataFrame vorbereitet. Screen Shot 2019-12-03 at 16.46.49.png

Jede Spalte hat die folgende Bedeutung

--id: Seriennummer --y_train: Mietdaten korrigieren --oof: Mietprognosedaten --diff: Vorhersagewert - Richtiger Wert --abs: Vorhersagewert - Absolutwert des korrekten Antwortwerts --loc_lat / loc_lon: Breite und Länge

Code

import plotly.express as px
px.set_mapbox_access_token('YOUR_API_KEY')
fig = px.scatter_mapbox(df, lat="loc_lat", lon="loc_lon",  color="diff", size="abs",text='id',
                  color_continuous_scale=px.colors.sequential.Viridis, size_max=30, zoom=10)
fig.show()

Erläuterung

Dieser Code wurde verwendet, um herauszufinden, in welchen Bereichen es viele Vermietungen mit großen Vorhersagefehlern gibt, nachdem die Daten im Wettbewerb tatsächlich gelernt wurden.

Um Kartendaten mit Längen- und Breitengrad mit Plotly abzugleichen, müssen Sie sich im Voraus bei einem Dienst namens MapBox registrieren und einen API-Schlüssel erhalten. Sie können es leicht von dieser Seite bekommen. (https://account.mapbox.com/)

Um es auf der Karte anzuzeigen, muss das Argument wie folgt angegeben werden. Diesmal

--color ... Vorhersagewertfehler --size ... Absolutwert des vorhergesagten Wertfehlers --text (Zeichenfolge wird dem Element überlagert angezeigt) ... Eigenschafts-ID

color="diff", size="abs",text='id'

Geben Sie die Farbkartenauswahl, die maximale Elementgröße und den Kartenzoom wie folgt an. color_continuous_scale=px.colors.sequential.Viridis, size_max=30, zoom=10

Feineinstellungen

Sie wird geändert, wenn Sie die Einstellung im Wörterbuchtyp in fig.update_layout übergeben. Die offizielle Website von plotly enthält viele Beispiele, und der Code und die Handlung sind also eine Menge Wenn Sie eine Einstellung haben, die Sie interessiert, können Sie sich die offizielle Website ansehen.

(https://plot.ly/python/text-and-annotations/#text-font-as-an-array--styling-each-text-element)

[Beispiel]: Ich möchte die Schriftart ändern und die Zeichen vergrößern.

fig.update_layout(
  font={"family":"Open Sans",
       "size":16})

abschließend

Ich habe Plotly vorgestellt, weil ich dachte, dass nur wenige Leute es für sein Potenzial nutzen. Insbesondere ist es mit 3D-Daten und Kartendaten kompatibel, verwenden Sie es also bitte!

Referenz

Laden und verwenden Sie das trainierte japanische Modell von Word2Vec https://qiita.com/omuram/items/6570973c090c6f0cb060

Erstellen Sie eine japanische Version des Text8-Korpus und lernen Sie verteilte Ausdrücke https://hironsan.hatenablog.com/entry/japanese-text8-corpus

So fügen Sie eine auf einem Mac aufgenommene Gif-Animation in einen Qiita-Artikel ein https://qiita.com/ryosukes/items/b5dd0fac1a059caffbf0

Recommended Posts

Einführung in das Potenzial von Plotlys Streudiagramm anhand praktischer Beispiele
Verwalten Sie die Überlappung, wenn Sie ein Streudiagramm mit einer großen Datenmenge zeichnen (Matplotlib, Pandas, Datashader).
[Sprechen Sie über die Zeichnungsstruktur von plotly] Dynamische Visualisierung mit plotly [Python]
Praktische Version zur Automatisierung des Testens von Flutter-Apps mit Appium (Python)
Plotten Anwenden von Diagrammen mit Schiebereglern
[Beispiel für eine Python-Verbesserung] Python mit Codecademy lernen
Überprüfen Sie die Existenz der Datei mit Python
Die dritte Nacht der Runde mit für
Die zweite Nacht der Runde mit für
Zählen Sie die Anzahl der Zeichen mit Echo
Verstehen Sie die Bilder verschiedener Matrixoperationen, die in Keras (Tensorflow) verwendet werden, anhand von Beispielen