[Python] Schreiben Sie mehrzeilige Diagramme in Plotly Express

Dies ist eine kleine Geschichte zum Schreiben mehrzeiliger Diagramme mit "Plotly Express", einem Wrapper für die Python-Diagrammbibliothek "Plotly", deren modernes Design unwiderstehlich ist.

Daten

Ich habe die Daten des MLB-Entwurfs für 2019 von der Website Spotrac extrahiert. Ich werde die Scraping- und Verarbeitungsschritte weglassen, aber die Daten sehen so aus.

>>> df.head()
   PICK TEAM             NAME AGE POS                   SCHOOL  SLOTTED_BONUS  SIGNED_BONUS
0   1.0  BAL  Adley Rutschman  21   C             Oregon State      8415300.0     8100000.0
1   2.0   KC   Bobby Witt Jr.  18  SS  Colleyville Heritage HS      7789900.0     7789900.0
2   3.0  CHW    Andrew Vaughn  21  1B               California      7221200.0     7221200.0
3   4.0  MIA      J.J. Bleday  21  OF               Vanderbilt      6664000.0     6670000.0
4   5.0  DET     Riley Greene  18  OF               Hagerty HS      6180700.0     6180700.0

>>> df.dtypes
PICK             float64
TEAM              object
NAME              object
AGE               object
POS               object
SCHOOL            object
SLOTTED_BONUS    float64
SIGNED_BONUS     float64
dtype: object

Die Bedeutung der Spalte "DataFrame" lautet wie folgt. Es ist ein MLB-Otaku, also hoffe ich, dass Sie es ausprobieren können: bow:

Ich möchte einen mehrzeiligen Plot schreiben!

Ich möchte die Faltlinien mit "SLOTTED_BONUS" und "SIGNED_BONUS" überlappen und wie hoch ist der tatsächliche Signaturbetrag in Bezug auf den Slot-Betrag? Ich möchte visualisieren.

Antworten

Wenn Sie sich die Mühe machen, ordentliche Daten mit "pandas.melt ()" zu erstellen, können Sie diese schnell schreiben, indem Sie die Daten an "Plotly Express" weitergeben.

>>> mdf = pd.melt(
...     df,
...     id_vars=["PICK", "TEAM", "NAME", "AGE", "POS", "SCHOOL"],
...     value_vars=["SLOTTED_BONUS", "SIGNED_BONUS"],
...     var_name="BONUS_TYPE",
...     value_name="AMOUNT"
... )
>>> mdf.head()
   PICK TEAM             NAME AGE POS                   SCHOOL     BONUS_TYPE     AMOUNT
0   1.0  BAL  Adley Rutschman  21   C             Oregon State  SLOTTED_BONUS  8415300.0
1   2.0   KC   Bobby Witt Jr.  18  SS  Colleyville Heritage HS  SLOTTED_BONUS  7789900.0
2   3.0  CHW    Andrew Vaughn  21  1B               California  SLOTTED_BONUS  7221200.0
3   4.0  MIA      J.J. Bleday  21  OF               Vanderbilt  SLOTTED_BONUS  6664000.0
4   5.0  DET     Riley Greene  18  OF               Hagerty HS  SLOTTED_BONUS  6180700.0

Ich habe "SLOTTED_BONUS" und "SIGNED_BONUS" so geändert, dass sie vertikal gehalten werden, und sie in die Spalte "BONUS_TYPE" als Spalte mit dem ursprünglichen Spaltennamen und dem Wert "AMOUNT" eingefügt. In diesem Formular können Sie ein mehrzeiliges Diagramm schreiben, indem Sie festlegen, dass "BONUS_TYPE" als Parameter angezeigt wird, der an "Plotly Express" übergeben werden soll.

import plotly.express as px

px.line(
    mdf, x="PICK", y="AMOUNT", color="BONUS_TYPE",
)

image.png

Referenz

Recommended Posts

[Python] Schreiben Sie mehrzeilige Diagramme in Plotly Express
Echtzeitdiagramm mit Plotly (Python)
[Python] Erstellen Sie mit Plotly Express parallele Koordinatendiagramme, die nach Kategorien farbcodiert sind
Python unter Windows
Twitter mit Python3
[Mit Plotly auf die Karte schreiben] Dynamische Visualisierung mit Plotly [Python]
Python auf Mac
So schreiben Sie in Error Repoting in Python auf GAE
Python auf Windbg
Schreiben Sie in Python ein logarithmisches Histogramm auf die x-Achse
Python Conda mit Cygwin
Installieren Sie Python auf der WSL
PyOpenGL-Setup unter Python 3
Installieren Sie Python auf Pidora.
Installieren Sie Scrapy auf Python3
[Python] Mehrzeilige Zeichenfolgenzuweisung
Installieren von Python 3 in einer Mac-Umgebung
Installieren Sie Python3.4 unter CentOS 6.6
Pandas auf python2.6 installieren
Python Basic ② in Windows
Installieren Sie Python unter Windows
Installieren Sie Python 2.7.3 unter CentOS 5.4
Build Python auf Ubuntu
Installieren Sie Python 3.3 unter Ubuntu 12.04
Installieren Sie Python 3.4 auf einem Mac
Installieren Sie Python 3.6 auf Docker