Visualisieren Sie Yugioh-Kartendaten mit Python - Yugiou Data Science 1. EDA Edition

Einführung

Dies ist die Serie "Yugio DS (Data Science)", die verschiedene Yugioh-Kartendaten mit Python analysiert. Der Artikel wird insgesamt viermal gehalten, und schließlich werden wir ein Programm implementieren, das offensive und defensive Attribute aus dem Kartennamen durch Verarbeitung natürlicher Sprache + maschinelles Lernen vorhersagt. Darüber hinaus hat das Wissen des Autors über Yugioh bei etwa E ・ HERO aufgehört. Es tut mir leid, dass sowohl Karten als auch Data Science Amateure sind, aber bitte bleiben Sie in Kontakt.

No. Artikelüberschrift Keyword
0 Holen Sie sich Karteninformationen aus der Yugioh-Datenbank-Yugioh DS 0.Schaben beautifulsoup
1 Visualisieren Sie Yugioh-Kartendaten mit Python-Yugioh DS 1.EDA-Ausgabe pandas, seaborn Dieser Beitrag!
2 Verarbeiten Sie den Namen der Yugioh-Karte in natürlicher Sprache-Yugioh DS 2.NLP-Ausgabe wordcloud, word2vec, doc2vec, t-SNE
3 Sagen Sie offensive und defensive Attribute anhand des Yugioh-Kartennamens voraus-Yugioh DS 3.Maschinelles Lernen lightgbm etc.

Zweck dieses Artikels

Es ist über 10 Jahre her, seit ich die Yugioh-Karte nicht mehr sehe, und ich bin mir nicht sicher, welche Art von Karte ich jetzt habe. In diesem ersten Artikel werden wir jeden Aspekt der Daten mit ** Exploratory Data Analysis (EDA) ** betrachten. Darüber hinaus ist das technische Thema dieses Artikels die "Seaborn" -Visualisierung. Ich werde versuchen, eine geeignete Visualisierungsmethode und Seaborn-Methode entsprechend der Art der einzelnen Daten zu finden.

Erläuterung der Voraussetzungen (Nutzungsumgebung, Daten, Analyserichtlinie)

Nutzungsumgebung

Wenn "Anaconda" enthalten ist, sollte es funktionieren. Python==3.7.4 seaborn==0.10.0

Daten

Die in diesem Artikel erfassten Daten werden mit einem handgefertigten Code aus der Yugio OCG-Kartendatenbank erfasst. .. Es ist spätestens ab Juni 2020. Abhängig vom anzuzeigenden Diagramm werden verschiedene Datenrahmen verwendet, aber alle Datenrahmen enthalten die folgenden Spalten.

No. Spaltenname Spaltenname(日本語) Stichprobe Ergänzung
1 name Kartenname Ojama Gelb
2 kana Kartennamen lesen Ojama Gelb
1 rarity Seltenheit normal Zur Vereinfachung des Erwerbs sind auch Informationen wie "Einschränkung" und "Verbot" enthalten.
1 attr Attribut 光Attribut
1 effect NaN
1 level 2
1 species Im Fall von Nicht-Monstern umfassen die Effekte, die in "Magie" und "Falle" eintreten, "permanent" und "Ausrüstung", die Arten von Magie- / Fallenkarten. NaN-Level für Monster Rassen, die für Monster "Rang 2" erreichen Tierstamm
1 attack Offensivkraft 0
1 defence Verteidigungskraft 1000
1 text Kartentext Ein Mitglied des Jama-Trios, das auf jeden Fall jammen soll. Wenn etwas passiert, wenn wir alle drei zusammen sind...
1 pack Name des Aufzeichnungspakets EXPERT Expert EDITION Edition Band Band 2
1 kind Art - Bei einer Monsterkarte werden Informationen wie Fusion und Ritual eingegeben

Zeichenpolitik

Alle Features (Spalten) können entweder als kategoriale Daten (kategorisch) oder als numerische Daten (numerisch) kategorisiert werden. Wenn Sie bestimmte Daten als Diagramm zeichnen, beträgt die maximale Anzahl von Features (Spalten), die gleichzeitig ausgedrückt werden können, etwa drei. Das Zeichnen eines Diagramms kann als die Arbeit bezeichnet werden, Merkmale aus den gesamten Daten aufzunehmen und eine geeignete Ausdrucksmethode basierend auf jedem Typ (Kategorie / numerischer Wert) auszuwählen. Im Visualisierungskapitel in den folgenden Implementierungen wird das Diagramm entsprechend der Anzahl der gleichzeitig ausgewählten Features und dem Typ (Kategorie / numerischer Wert) jedes Features in 6 Abschnitte unterteilt.

No. Anzahl der Funktionen Kombination verwendenseabornMethode von
1 1 Kategoriedaten sns.barplot,sns.countplot
2 2 Numerische Daten x Numerische Daten sns.jointplot
3 2 Kategoriedaten x numerische Daten sns.barplot,sns.boxplot
4 2 Kategoriedaten x Kategoriedaten sns.heatmap
5 3 Kategoriedaten x Kategoriedaten x numerische Daten sns.catplot
6 3 Kategoriedaten x numerische Daten x numerische Daten sns.lmplot

Implementierung

1. Paketimport

Importieren Sie die erforderlichen Pakete.

import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
%matplotlib inline
sns.set(font="IPAexGothic") #Japanische Unterstützung für Seaborn

2. Datenimport

Importieren Sie die vier Datensätze, die Sie verwenden möchten. Die Erfassungsmethode für jeden Datensatz ist in 0 beschrieben. Scraping (Kein Artikel ab Juni 2020).

all_data = pd.read_csv("./input/all_data.csv") #Datensatz für alle Karten (Karten mit demselben Namen haben doppelte Aufzeichnungspakete)
print("all_data: {}rows".format(all_data.shape[0]))

cardlist = pd.read_csv("./input/cardlist.csv") #Datensatz für alle Karten (keine Vervielfältigung)
print("cardlist: {}rows".format(cardlist.shape[0]))

monsters = pd.read_csv("./input/monsters.csv") #Nur Monsterkarte
print("monsters: {}rows".format(monsters.shape[0]))

monsters_norank = pd.read_csv("./input/monsters_norank.csv") #Entferne Rangmonster von Monsterkarten
print("monsters_norank: {}rows".format(monsters_norank.shape[0]))
all_data: 21796rows
cardlist: 10410rows
monsters: 6913rows
monsters_norank: 6206rows

3. Visualisierung

3-1. Kategoriedaten

Wählen Sie nur Kategoriedaten aus und visualisieren Sie sie. Grundsätzlich ist die horizontale Achse die Kategorie und die vertikale Achse die Anzahl. In "seaborn" kann es durch "sns.barplot" oder "sns.countplot" ausgedrückt werden.

3-1-1. Rangfolge der Aufzeichnung

Für alle Karten all_data wird die Anzahl der Aufnahmen bis zum 50. Platz in der Rangliste angezeigt. Die Nummer eins ist "Cyclone", und Sie können sehen, dass sie 45 Mal aufgenommen wurde. Es scheint, dass es oft im Starter-Kit enthalten ist (ein Set, das Sie sofort kaufen können, wenn Sie es kaufen).

eda3-1-1.png

eda3-1-1


#Aufnahmefrequenz-Ranking
df4visual = df.groupby("name").count().sort_values(by="kana", ascending=False).head(50)

f, ax = plt.subplots(figsize=(20, 10))
ax = sns.barplot(data=df4visual, x=df4visual.index, y="kana")
ax.set_ylabel("frequency")
ax.set_title("Aufnahmefrequenz-Ranking")

for i, patch in enumerate(ax.patches):
    ax.text(i, patch.get_height()/2, int(patch.get_height()), ha='center')

plt.xticks(rotation=90);

3-1-2. Anzahl der Blätter (nach Attribut)

Die Aufteilung der Attribute ist 1946 mit den Top-Magiekarten. Bei Monsterkarten ist der 1. Platz das Dunkelattribut und die Anzahl der Karten mehr als das Dreifache des Flammenattributs des 6. Platzes. Warum gibt es 6 göttliche Attribute? Ich dachte, aber jetzt gibt es unsterbliche Vögel und kugelförmige Formen von Ra's Flügelgott Drachen. Ich wusste es nicht.

eda3-1-2.png

eda3-1-2


df4visual = cardlist

f, ax = plt.subplots(figsize=(20, 10))
ax = sns.countplot(data=df4visual, x=df4visual.attr, order=df4visual['attr'].value_counts().index)

for i, patch in enumerate(ax.patches):
    ax.text(i, patch.get_height()/2, int(patch.get_height()), ha='center')

ax.set_ylabel("frequency")
ax.set_title("Anzahl der Blätter (nach Attribut)");

plt.savefig('./output/eda3-1-2.png', bbox_inches='tight', pad_inches=0)

python


print(cardlist.query("attr == 'Gott Attribut'")["name"])
3471 Horakuti, der Schöpfer des Lichts
4437 Ra's Wing God Drachen-unsterblicher Vogel
5998 Ra's Wing God Dragon-Spherical
6677 Oberisk Riesensoldat
8747 Osiris Himmelsdrache
9136 Ra's Wing God Dragon
Name: name, dtype: object

3-1-3. Anzahl der Blätter (nach Ebene)

Die Interpretation wird unterteilt, je nachdem, ob es sich bei der Ebene um einen numerischen Wert oder eine Kategorie handelt. Hier wird sie jedoch als Ordnungsskala interpretiert (Reihenfolge hat Bedeutung, Intervall hat jedoch keine Bedeutung). Rangmonster sind ausgeschlossen und die Anzahl der Karten nach Level wird angezeigt. Irgendwie dachte ich intuitiv: "Es gibt weniger Karten mit ungeraden Ebenen als Karten mit geraden Ebenen." Es gibt immer 1 <2, 3 <4, ....

eda3-1-3.png

eda3-1-3


df4visual = monsters_norank
#Nach 3-1-Ausgelassen, weil es fast dasselbe ist wie 2.

3-1-4. Anzahl der Blätter (nach Seltenheit)

Es gibt einige Raritäten, die ich nicht kenne (Millennium usw.). Beachten Sie, dass der Nenner "all_data" verwendet, da die Seltenheit von Aufnahmepaket zu Aufnahmepaket variiert. Verbote / Einschränkungen können Vervielfältigungen beinhalten.

eda3-1-4.png

eda3-1-4


df4visual = all_data
#Nach 3-1-Ausgelassen, weil es fast dasselbe ist wie 2.

3-1-5. Anzahl der Blätter (nach Rasse)

Ich hatte das Bild, dass es viele Hexen und Drachen gab, aber überraschenderweise gab es viele Krieger und Maschinen. Liegt es daran, dass es viele Serien gibt ("E ・ HERO" oder nostalgisch)?

eda3-1-5.png

eda3-1-5


df4visual = monsters
#Nach 3-1-Ausgelassen, weil es fast dasselbe ist wie 2.

3-1-5 Anzahl der Blätter (nach Typ)

Ich bin mir nicht sicher, was für eine Art von Fusion, Ritual usw. ist, aber es gibt viele Wörter, die ich nicht kenne.

eda3-1-6.png

eda3-1-6


df4visual = monsters
#Nach 3-1-Ausgelassen, weil es fast dasselbe ist wie 2.

3-2 Numerische Daten x Numerische Daten

In vielen Fällen haben die x-Achse und die y-Achse ihre jeweiligen numerischen Werte und werden durch ein Streudiagramm dargestellt. In seaborn können Sie ein Streudiagramm mit sns.jointplot, sns.regplot und sns.lmplot zeichnen. Die Verwendung unterscheidet sich geringfügig, Einzelheiten entnehmen Sie bitte dem offiziellen Dokument.

3-2-1. Verteilung der Offensivkraft x Defensivkraft

Für jede Monsterkarte wird ein Streudiagramm mit der Angriffskraft auf der x-Achse und der Verteidigungskraft auf der y-Achse gezeichnet. Sie können sehen, dass viele Karten unterhalb des 3000-Bereichs dicht gepackt sind. Wenn man bedenkt, durch die Linie "y = x" zu teilen, scheinen die meisten Karten im Allgemeinen Offensivkraft> Defensivkraft zu haben, da die untere rechte Seite dunkler ist.

eda3-2-1.png

eda3-2-1


df4visual = monsters

g = sns.jointplot(data=df4visual, x="attack", y="defence", height=10, alpha=0.3)
plt.subplots_adjust(top=0.9)
plt.suptitle('Verteilung der Offensivkraft x Defensivkraft')
plt.savefig('./output/eda3-2-1.png', bbox_inches='tight', pad_inches=0)

3-3 Kategoriedaten x numerische Daten

Es ist ein Muster denkbar, bei dem sich jede Kategorie auf der x-Achse befindet und die numerischen Daten für jede Kategorie und ihre Aggregationsergebnisse (gesamt, durchschnittlich, maximal ...) auf der y-Achse liegen.

3-3-1. Offensive / Defensive Power Ranking

Der Kartenname wird als Kategorie angesehen und die Angriffs- und Verteidigungskraft wird in absteigender Reihenfolge als "sns.barplot" angezeigt. Es scheint, dass es noch keine Karten mit offensiver oder defensiver Kraft gibt, deren ursprünglicher Wert 5000 überschreitet.

eda3-3-1.png

eda3-3-1


df4visual = monsters
df4visual_atk = df4visual.sort_values("attack", ascending=False).head(50)
df4visual_def = df4visual.sort_values("defence", ascending=False).head(50)

f, ax = plt.subplots(2, 1, figsize = (20, 15), gridspec_kw=dict(hspace=0.8))
f.subplots_adjust(hspace=2.0)
ax[0] = sns.barplot("name", "attack", data=df4visual_atk, ax=ax[0])
ax[0].tick_params(axis='x', labelrotation=90, labelsize = 9)
ax[0].set_xlabel("");
ax[1] = sns.barplot("name", "defence", data=df4visual_def, ax=ax[1])
ax[1].tick_params(axis='x', labelrotation=90, labelsize = 9)

plt.suptitle('Offensives / defensives Power-Ranking')
plt.savefig('./output/eda3-3-1.png', bbox_inches='tight', pad_inches=0)

3-3-2. Angriffskraft / Verteidigungskraftverteilung (nach Attribut)

Die Offensiv- und Defensivkraft jedes Attributs wird durch ein Box-Bart-Diagramm dargestellt. Das Box-Whisker-Diagramm ist ein Diagramm mit fünf zusammenfassenden Statistiken (Minimalwert, erster Quadrant, Median, dritter Quadrant, Maximum). Die horizontalen Linien in jedem Feld entsprechen den jeweiligen Statistiken. In Bezug auf die Angriffskraft sind der Medianwert des Lichtattributs und des dritten Quadranten höher als bei anderen, so dass ersichtlich ist, dass viele Monster eine relativ hohe Angriffskraft im Lichtattribut haben. Da die Verteidigungskraft gleich ist, scheint das Lichtattribut ausgezeichnet zu sein, wenn man nur die Offensive und Verteidigung betrachtet.

eda3-3-2.png

eda3-3-2


df4visual = monsters

f, ax = plt.subplots(2, 1, figsize = (20, 10))
ax[0] = sns.boxplot("attr", "attack", data=df4visual, ax=ax[0])
ax[1] = sns.boxplot("attr", "defence", data=df4visual, ax=ax[1])

ax[0].set_xticks([])
ax[0].set_xlabel("")

ax[0].set_title("Angriffskraftverteilung (nach Attribut)")
ax[1].set_title("Defensive Energieverteilung (nach Attribut)");

plt.savefig('./output/eda3-3-1.png', bbox_inches='tight', pad_inches=0)
monsters.groupby("attr").describe()[['attack', 'defence']]

image.png

3-3-3. Angriffskraft / Verteidigungskraftverteilung (nach Stufe)

Das Niveau und der Medianwert jedes Wertes scheinen eine schöne positive Korrelation zu haben. Außerdem kannst du besonders auf Stufe 1 sehen, dass es mehrere Monster mit einer Offensiv- und Defensivkraft von 2000 oder mehr gibt.

eda3-3-3.png

eda3-3-3


df4visual = monsters_norank
#Nach 3-3-Ausgelassen, weil es fast dasselbe ist wie 2.

image.png

3-3-4. Angriffskraft / Verteidigungskraftverteilung (nach Rasse)

Ich werde die Interpretation weglassen.

eda3-3-4.png

eda3-3-4


df4visual = monsters
#Nach 3-3-Ausgelassen, weil es fast dasselbe ist wie 2.

image.png

3-4 Kategoriedaten x Kategoriedaten

Nehmen Sie Kategorien sowohl auf der x-Achse als auch auf der y-Achse und überprüfen Sie die zusammenfassenden Statistiken (Gesamtmenge, Durchschnitt, ... usw.) der Daten, die zu beiden Kategorien gehören. In dieser Analyse werden wir die Verwendung von "sns.heatmap" in Betracht ziehen, um die Anzahl der Karten darzustellen, die zu beiden Kategorien in einer Heatmap gehören.

3-4-1. Anzahl der Blätter (Attribut x Rennen)

Die Kombination mit der größten Anzahl von Karten scheint Dunkelheit x Dämonen zu sein. Wenn es nur die Rasse ist, ist die Anzahl der Krieger und Maschinen größer, aber schließlich ist die Dunkelheit in der Kombination der Dämonen am größten. Wenn man die seltenen Attribute und Rassen ignoriert, scheint es noch keine Flammenattribute x Fisch, Flammenattribute x Donner usw. zu geben.

eda3-4-1.png

eda3-4-1


df4visual = pd.pivot_table(monsters, index="species", columns="attr", aggfunc="count", values='name').fillna(0).astype("int")
f, ax = plt.subplots(figsize = (20, 10))
ax = sns.heatmap(data=df4visual, cmap="YlGnBu", annot=True, fmt="d")
ax.set_title("Anzahl der Blätter (Attribut x Rennen)")

plt.savefig('./output/eda3-4-1.png', bbox_inches='tight', pad_inches=0)

3-4-2. Anzahl der Blätter (Attribut x Rennen)

Es scheint, dass es viele Karten mit ungewöhnlichen Beschwörungsmethoden für helle und dunkle Attribute gibt.

eda3-4-2.png

eda3-4-1


df4visual = pd.pivot_table(monsters.query("kind != '-'"), index="kind", columns="attr", aggfunc="count", values='name').fillna(0).astype("int")
#Nach 3-4-Ausgelassen, weil es fast dasselbe ist wie 1.

3-5 Kategoriedaten x Kategoriedaten x Numerische Daten

Um die Verteilung einer bestimmten Zahl darzustellen, verwenden wir zwei kategoriale Daten, um sie zu gruppieren. Es gibt zwei Möglichkeiten, in Gruppen zu unterteilen: (1) x-Achse und (2) Farbe. Sns.catplot ist nützlich, um die Beziehung zwischen numerischen Daten und zwei oder mehr Kategoriedaten anzuzeigen. Numerische Werte können mithilfe kategorialer Daten wie Farbcodierung, Aufteilung innerhalb der Achsen und Aufteilung für jede Tabelle auf verschiedene Arten segmentiert werden.

3-5-1. Angriffskraft / Verteidigungskraftverteilung (nach Attribut / Stufe)

Die folgenden Daten werden auf die Farbe, die x-Achse und die y-Achse des Diagramms angewendet. Es gibt keine Informationen zur horizontalen Verteilung der einzelnen Daten in der Achse.

Da die Farbe des Levels eine schöne Abstufung aufweist, ist ersichtlich, dass die Höhe des Levels und die Höhe der Offensiv- und Defensivkraft selbst innerhalb jedes Attributs eine positive Korrelation aufweisen.

eda3-5-1a.png eda3-5-1b.png

eda3-5-1


df4visual = monsters_norank
g1 = sns.catplot(x="attr", y="attack", data=df4visual, aspect=3, hue="level")
g1.ax.set_title("Angriffskraftverteilung (nach Attribut / Stufe)")
plt.savefig('./output/eda3-5-1a.png', bbox_inches='tight', pad_inches=0)

g2 = sns.catplot(x="attr", y="attack", data=df4visual, aspect=3, hue="level")
g2.ax.set_title("Defensive Energieverteilung (nach Attribut / Stufe)")
plt.savefig('./output/eda3-5-1b.png', bbox_inches='tight', pad_inches=0)

Darüber hinaus sind die Ergebnisse des Austauschs der Farben und der x-Achse der beiden Kategorien wie folgt. Was ich aus dem Box-Bart-Diagramm von "eda3-3-3" nicht verstehen konnte, zum Beispiel, dass das Dunkelattribut und das Windattribut die Monster mit Angriffskraft 2000 oder mehr auf Stufe 1 besetzen. Du kannst es haben.

eda3-5-2c.png eda3-5-2d.png

3-5-1. Angriffskraft / Verteidigungskraftverteilung (nach Rasse / Attribut)

Die verwendeten Daten sind wie folgt. Viele Attribute, wie z. B. welches Attribut jedes Rennen voreingenommen ist (eda3-4-1), die Anzahl der Blätter nach Rasse (eda3-1-5), die Verteilung der Offensiv- und Defensivkraft nach Rasse (eda3-3-4) usw. Informationen können aus einem einzelnen Diagramm gelesen werden.

eda3-5-2a.png eda3-5-2b.png

eda3-5-2


df4visual = monsters
g1 = sns.catplot(x="species", y="attack", data=df4visual, aspect=4, hue="attr")
g1.ax.set_title("Angriffskraftverteilung (nach Rasse / Attribut)")
g1.ax.tick_params(axis='x', labelrotation=90)
plt.savefig('./output/eda3-5-2a.png', bbox_inches='tight', pad_inches=0)

g2 = sns.catplot(x="species", y="defence", data=df4visual, aspect=4, hue="attr")
g2.ax.set_title("Defensive Kraftverteilung (nach Rasse / Attribut)")
g2.ax.tick_params(axis='x', labelrotation=90)
plt.savefig('./output/eda3-5-2b.png', bbox_inches='tight', pad_inches=0)

3-6 Kategoriedaten x numerische Daten x numerische Daten

Für die numerischen Daten x numerische Daten in 3-2. Haben wir ein Streudiagramm verwendet, das numerische Werte sowohl auf der x-Achse als auch auf der y-Achse annehmen kann. Hier fügen wir weitere Informationen hinzu, indem wir das Streudiagramm nach Kategorien färben.

3-6-1. Verteilung der Offensiv- und Defensivkraft (nach Level)

Das offensive und defensive Streudiagramm (eda3-2-1) ist nach Level gefärbt. Sie können sehen, dass je höher das Level, desto höher das Level.

eda3-6-1a.png

eda3-6-1a


df4visual = monsters_norank
g = sns.lmplot("attack","defence",data=df4visual, fit_reg=False, hue="level", height=10)
g.ax.set_title("Angriffskraft / Verteidigungskraftverteilung (nach Level)")
plt.savefig('./output/eda3-6-1a.png', bbox_inches='tight', pad_inches=0)

Da die Ebenendaten diskrete Werte annehmen, obwohl es sich um kategoriale Daten handelt, ist es außerdem möglich, sie als numerische Daten zu interpretieren und numerische Daten x numerische Daten x numerische Daten zu zeichnen. Verwenden Sie mplot3d, um ein 3D-Diagramm mit 3 Achsen zu zeichnen. 3D-Diagramme sind jedoch nur sichtbar, wenn sie interaktiv sind und verschoben werden können.

eda3-6-1b.png

eda3-6-1b


from mpl_toolkits import mplot3d
df4visual = monsters_norank
f = plt.figure(figsize = (20, 10))
ax = plt.axes(projection = '3d')
ax.scatter3D(df4visual.attack, df4visual.defence, df4visual.level, c=df4visual.level)
plt.gca().invert_xaxis()

ax.set_xlabel=('attack')
ax.set_ylabel=('defence')
ax.set_zlabel=('level')
plt.suptitle("Offensivkraft / Defensivkraft / Levelverteilung")

plt.savefig('./output/eda3-6-1b.png', bbox_inches='tight', pad_inches=0)

Zusammenfassung

Vielen Dank, dass Sie so weit gelesen haben. Unter Verwendung der Daten der Yugioh-Karte schrieb ich verschiedene Denkweisen beim Erstellen von Grafiken und bei der Verwendung von "Seaborn".

Je mehr Funktionen Sie gleichzeitig auswählen, desto mehr Informationen können Sie in einer einzelnen Abbildung übermitteln. Es wird jedoch schwierig, die Meldung dieses Diagramms einzugrenzen. Ich möchte an eine einfache Funktionsauswahl und -visualisierung denken, die nur eine Nachricht ausdrückt, die ich übermitteln möchte (obwohl es sein kann, dass Sie beim Schreiben von Sätzen wirklich daran denken sollten, wenn Sie auf die entsprechende Nachricht selbst zurückblicken. ・ ・).

Obwohl ich es nicht in jedem Diagramm erwähnt habe, habe ich jedem Code verschiedene nützliche Tipps für "Seaborn" hinzugefügt. Es kann überraschend mühsam sein, Dinge mit Excel oder Tableau einfach zu erledigen, z. B. eine Wertbezeichnung an jeden Balken anzuhängen oder den Achsnamen zu ändern. Ich hoffe, Sie finden es hilfreich.

Siehe auch diesen Artikel → Geben Sie die gut aussehenden Anpassungen von Seaborn nicht auf

Vorschau beim nächsten Mal

Wir planen eine Analyse zum Thema der Verarbeitung natürlicher Sprache für Kartennamen, die wir diesmal nicht besonders beachtet haben. Ich möchte eine morphologische Analyse mit MeCab durchführen, mit WordCloud visualisieren und die Ähnlichkeit mit Word2Vec / Doc2Vec berechnen. image.png

Recommended Posts

Visualisieren Sie Yugioh-Kartendaten mit Python - Yugiou Data Science 1. EDA Edition
Visualisieren Sie Korona-Infektionsdaten in Tokio mit matplotlib
Visualisieren Sie Daten interaktiv mit TreasureData, Pandas und Jupyter.
Folium: Visualisieren Sie Daten auf einer Karte mit Python
Lernen Sie Data Science
Vorhersage offensiver und defensiver Attribute anhand des Yugioh-Kartennamens - Yugiou Data Science 3. Maschinelles Lernen
Visualisieren Sie mit Cytoscape 2 Eisenbahnstreckendaten als Grafik
Fordern Sie die Bildklassifizierung mit TensorFlow2 + Keras 3 heraus ~ Visualisieren Sie MNIST-Daten ~
[Grundlagen der Datenwissenschaft] Sammeln von Daten aus RSS mit Python