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.
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:
PICK
――Die Reihenfolge des Entwurfs der Nummer im GanzenTEAM
NAME
AGE
POS
--PositionSLOTTED_BONUS
--Slotbetrag im Auftragsentwurf zugewiesenSIGNED_BONUS
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.
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",
)
Recommended Posts