[Python] Ich habe versucht, das Preisgeld von "ONE PIECE" über 100 Millionen Zeichen mit matplotlib zu visualisieren.

Überblick

Die Preise wie Roger und Whitebeards Vater wurden veröffentlicht, und ich habe mich gefragt, wie weit der Unterschied zwischen Ruffy, der den Piratenkönig anstrebt, und den großen Piraten ist. Deshalb habe ich beschlossen, ihn als Matplotlib-Praxis zu visualisieren. ..

Umgebung

・ Python 3.8.0 ・ Windows10 ・ Jupyter-Notizbuch

Referenzmaterial

・ Studieren Sie den Logarithmus mit Drachenball-Kampfkraft und Matplotlib ・ [Neueste Version 2019] "One Piece" -Preisrang! Schließlich wird Rogers Kopfgeld entdeckt

Rauer Fluss

  1. Gewinnspiel ・ Charaktername erfassen (Scraping)
  2. Visualisieren (matplotlib)

1. Gewinnspiel ・ Charaktername erfassen (Scraping)

Ich habe einen einteiligen Preis aus dem Artikel hier erhalten.

Der Kratzfluss ist wie folgt.

  1. Holen Sie sich alle Charakterpreise
  2. Holen Sie sich alle Charakternamen Nur über 300 Millionen Charaktere erhalten den Charakternamen und den Preis

scraping_onepiece.py


import requests
from bs4 import BeautifulSoup
import pandas as pd
import re
import time

list_df = pd.DataFrame(columns=['Charakter', 'Gewinnspiel'])

url = 'https://ciatr.jp/topics/311415'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'lxml')
#Holen Sie sich alle Charakter-Gewinnspiele
bounty_tags = soup.find_all('div', class_='component ArticleComponentHead')
bounty_tags = soup.find_all('h3')

#Im h3-Element enthalten['Arbeitsinformationen', 'Artikelinformationen', 'Über Ciatr']Ignorieren
bounty_tags = [tag.text for tag in bounty_tags if tag.text not in ['Arbeitsinformationen', 'Artikelinformationen', 'Über Ciatr']]

#Warten Sie 1 Sekunde
time.sleep(1)

#Holen Sie sich den Charakternamen
name_tags = soup.find_all('div', class_='component ArticleComponentHead scroll-margin')

name_tags = [tag.text for tag in name_tags if tag.text not in ['Ich möchte die Preismenge der mächtigen Spieler wissen, die in "ONE PIECE" erscheinen!',
																'Es gibt immer noch große Namen mit unbekannten Preisen! Der maximale Betrag wird wahrscheinlich aktualisiert']]

# {Charaktername:Gewinnspiel}Erstellen Sie ein Wörterbuch
master_table = dict()

for bounty_tag, name_tag in zip(bounty_tags, name_tags):

	#Entfernen Sie zusätzliche Zeichen mit regulären Ausdrücken
	bounty = re.sub(r'[Gewinnspiel Original Beere oder mehr]', '', bounty_tag)

	#Ausgeschlossen sind Charaktere, deren Preise 100 Millionen nicht überschreiten
	if 'Milliarde' in bounty:

		#Danach wird das Preisgeld in matplotlib verwendet. Konvertieren Sie es also in eine Ganzzahl.
		oku_ind = bounty.find("Milliarde")
		man_ind = bounty.find("Zehntausend")

		oku = bounty[:oku_ind]
		
		if bounty[oku_ind + 1:man_ind] != '':
			man = bounty[oku_ind + 1:man_ind]
		else:
			man = 0

		bounty = int(oku) * 100000000 + int(man) * 10000

		name = re.sub(r'[【】0-9. Platz]', '', name_tag)

		#Zum Wörterbuch hinzufügen
		master_table[name] = bounty

for name, bounty in master_table.items():
	tmp_se = pd.DataFrame([name, bounty], index=list_df.columns).T
	list_df = list_df.append(tmp_se)

print(list_df)

#CSV speichern
list_df.to_csv('onepiece.csv', mode = 'a', encoding='cp932')

2. Visualisieren (matplotlib)

malplotlib_onepiece.ipynb


#Beschreibung, die beim Zeichnen eines Diagramms auf Jupyter Notebook angegeben werden soll
%matplotlib inline

python


import matplotlib.pyplot as plt
import pandas as pd

python


plt.rcParams["font.family"] = "IPAexGothic"

Der Schriftfehler ist [hier](https://datumstudio.jp/blog/matplotlib%E3%81%AE%E6%97%A5%E6%9C%AC%E8%AA%9E%E6%96%87%E5 % AD% 97% E5% 8C% 96% E3% 81% 91% E3% 82% 92% E8% A7% A3% E6% B6% 88% E3% 81% 99% E3% 82% 8Fenster% E7% B7 Ich bezog mich auf% A8).

[Verstümmelte japanische Zeichen in matplotlib (Windows) auflösen](https://datumstudio.jp/blog/matplotlib%E3%81%AE%E6%97%A5%E6%9C%AC%E8%AA% 9E% E6% 96% 87% E5% AD% 97% E5% 8C% 96% E3% 81% 91% E3% 82% 92% E8% A7% A3% E6% B6% 88% E3% 81% 99% E3% 82% 8Fenster% E7% B7% A8)

python


df_file = pd.read_csv('onepiece.csv', encoding='cp932')

python


df_name = df_file['Charakter'].tolist()
df_bounty = df_file['Gewinnspiel'].tolist()

python


d = []

for name, bounty in zip(df_name, df_bounty):
    data = [name, bounty]
    d.append(data)

python


#Gewinnspiel in absteigender Reihenfolge
name = list(reversed([x[0] for x in d]))
bounty = list(reversed([x[1] for x in d]))

python


#Gesamtgröße der Figur
plt.figure(figsize=(12, len(d)/2))
#Horizontales Balkendiagramm
plt.barh(name, bounty)
#Der Titel des gesamten Diagramms
plt.title('Einteiliges Gewinnspiel-Ranking')
#x Etikettentitel
plt.xlabel('Gewinnspiel(Milliarde)')
#Stellen Sie die x-Achsen-Skala (Preisskala) ein
plt.xscale('log')
plt.show()

onepiece.png

Wenn Sie versuchen, es zu visualisieren, ist die Stärke der vier Kaiser nicht ungerade. Ich freue mich immer noch auf die geheimen Preise von Dragon und Master Rayleigh. Meiner Meinung nach ist die Drachenprämie der Chef einer Organisation, die versucht, die Weltregierung direkt zu besiegen, daher würde ich gerne 5 Milliarden sehen.

abschließend

Dieses Mal lernte ich Scraping und Malplotlib, um den einteiligen Milliarden-Dollar-Charakter zu visualisieren. Es war schwierig und zeitaufwändig, chinesische Zahlen in einer Zeichenkette durch Schaben in arithmetische Zahlen umzuwandeln. Das nächste Mal möchte ich Clustering und Emotionsanalyse von unbeaufsichtigtem Lernen lernen. Es ist lange her, aber danke, dass Sie so weit gelesen haben. Wenn Sie Fehler finden, wäre ich Ihnen sehr dankbar, wenn Sie in den Kommentaren darauf hinweisen könnten.

Recommended Posts

[Python] Ich habe versucht, das Preisgeld von "ONE PIECE" über 100 Millionen Zeichen mit matplotlib zu visualisieren.
Ich habe versucht, die Tweets von JAWS DAYS 2017 mit Python + ELK einfach zu visualisieren
Ich habe versucht, die Entropie des Bildes mit Python zu finden
[Python] Ich habe versucht, die folgende Beziehung von Twitter zu visualisieren
Ich habe versucht, die Effizienz der täglichen Arbeit mit Python zu verbessern
Ich habe versucht, den Authentifizierungscode der Qiita-API mit Python abzurufen.
(Python) Ich habe versucht, 1 Million Hände zu analysieren ~ Ich habe versucht, die Anzahl der AA ~ zu schätzen
Ich habe versucht, die Standardrolle neuer Mitarbeiter mit Python zu optimieren
Ich habe versucht, den Text des Romans "Wetterkind" mit Word Cloud zu visualisieren
Ich habe versucht, die Filminformationen der TMDb-API mit Python abzurufen
Ich habe versucht, die Literatur des neuen Corona-Virus mit Python automatisch an LINE zu senden
Ich habe versucht zusammenzufassen, wie man Matplotlib von Python verwendet
Ich habe versucht, eine CSV-Datei mit Python zu berühren
Ich habe versucht, Soma Cube mit Python zu lösen
Ich habe versucht, die Spacha-Informationen von VTuber zu visualisieren
Ich habe versucht, das Problem mit Python Vol.1 zu lösen
Ich habe versucht, die String-Operationen von Python zusammenzufassen
Python-Übung 100 Schläge Ich habe versucht, den Entscheidungsbaum von Kapitel 5 mit graphviz zu visualisieren
Ich habe versucht, das Artikel-Update des Livedoor-Blogs mit Python und Selen zu automatisieren.
Ich habe versucht, die Eigenschaften der neuen Informationen über mit dem Corona-Virus infizierte Personen mit Wordcloud zu visualisieren
Ich habe versucht, die Laufdaten des Rennspiels (Assetto Corsa) mit Plotly zu visualisieren
Ich habe versucht, die Verarbeitungsgeschwindigkeit mit dplyr von R und pandas von Python zu vergleichen
Beim 15. Offline-Echtzeitversuch habe ich versucht, das Problem des Schreibens mit Python zu lösen
Ich habe versucht, das Bild mit Python + OpenCV "gammakorrektur" zu machen
Ich habe versucht zu simulieren, wie sich die Infektion mit Python ausbreitet
Ich habe versucht, mit TensorFlow den Durchschnitt mehrerer Spalten zu ermitteln
[Python] Ich habe versucht, Tweets über Corona mit WordCloud zu visualisieren
Ich habe versucht, das Problem von F02 zu lösen, wie man mit Python offline in Echtzeit schreibt
Ich habe versucht, den Stromverbrauch meines Hauses mit Nature Remo E lite zu visualisieren
Ich schrieb einen Test in "Ich habe versucht, die Wahrscheinlichkeit eines Bingospiels mit Python zu simulieren".
Ich habe versucht, das Ranking des Qiita-Adventskalenders mit Python zu kratzen
Ich habe versucht, die Anfängerausgabe des Ameisenbuchs mit Python zu lösen
Ich habe versucht, die Bewässerung des Pflanzgefäßes mit Raspberry Pi zu automatisieren
Da die Aktie aufgrund des Einflusses des neuen Corona-Virus eingebrochen ist, habe ich versucht, die Performance meines Investment Trusts mit Python zu visualisieren.
Ich möchte den Anfang des nächsten Monats mit Python ausgeben
Ich habe versucht, mit Python eine Liste von Primzahlen zu erstellen
Ich habe versucht, die Größe des logischen Volumes mit LVM zu erweitern
Ich habe versucht, automatisch Bilder von Kanna Hashimoto mit Python zu sammeln! !!
Ich habe versucht, den allgemeinen Zustand der VTuber-Kanalbetrachter zu visualisieren
PhytoMine-I hat versucht, mit Python die genetischen Informationen der Pflanze zu erhalten
Ich habe versucht, die Sprecheridentifikation mithilfe der Sprechererkennungs-API von Azure Cognitive Services mit Python zu überprüfen. # 1
Ich habe versucht, die Sprecheridentifikation mithilfe der Sprechererkennungs-API von Azure Cognitive Services in Python zu überprüfen. # 2
Ich habe versucht, den Inhalt jedes von Python pip gespeicherten Pakets in einer Zeile zusammenzufassen
Ich habe versucht, die erste Frage der Mathematik-Aufnahmeprüfung 2019 der Universität Tokio mit Python Sympy zu lösen
Ich habe versucht, AutoEncoder mit TensorFlow zu visualisieren
Ich habe versucht, die Altersgruppe und die Ratenverteilung von Atcoder zu visualisieren
Ich habe es mit den Top 100 PyPI-Paketen versucht.> Ich habe versucht, die auf Python installierten Pakete grafisch darzustellen
Ich habe versucht, die Beschleunigung von Python durch Cython zu verifizieren und zu analysieren
Ich habe versucht, die Negativität von Nono Morikubo zu analysieren. [Vergleiche mit Posipa]
Ich habe versucht, das Modell mit der Low-Code-Bibliothek für maschinelles Lernen "PyCaret" zu visualisieren.
Ich habe versucht, alle Entscheidungsbäume des zufälligen Waldes mit SVG zu visualisieren
Ich habe versucht, das Verhalten des neuen Koronavirus mit dem SEIR-Modell vorherzusagen.
Ich habe versucht, die Liste der Drehzahlen des SSH-Anmeldeziels mit Python + openpyxl in einer Excel-Tabelle auszugeben.
Ich habe versucht, die statistischen Daten der neuen Corona mit Python abzurufen und zu analysieren: Daten der Johns Hopkins University
Da es der 20. Jahrestag der Gründung ist, habe ich versucht, die Texte von Parfüm mit Word Cloud zu visualisieren
Ich habe versucht, das Bild mit Python + OpenCV zu "glätten"