[PYTHON] [Für Anfänger] Skript innerhalb von 10 Zeilen (1.folium)

[Für Anfänger] Skript innerhalb von 10 Zeilen (1. Plotkarte mit Folium)

Wenn Sie verschiedene Bibliotheken mit Python verwenden, dachte ich: "Es ist praktisch, weil Sie mit ein wenig Code ein kleines Ding machen und mit ein paar 5 Schritten ein kleines Skript erstellen können." Es ist also nur eine Liste von Python und anderen Befehlen. Ich kann mir das einfallen lassen, aber ich werde unregelmäßig ein 10-Schritte-Skript veröffentlichen.

Als ** 1 ** möchte ich ein Skript veröffentlichen, das eine Karte um Ginza an 3 Stellen mit Markierungen unter Verwendung von "Folium (eine Python-Bibliothek, die eine Karte unter Verwendung einer Broschüre aus Python zeichnet)" zeichnet. Ich werde. In diesem Skript habe ich die folgenden 3 Stellen eingezeichnet.

【Umgebung】 LinuxMint19.3 python: 3.6.9 pip3: 9.0.1 pandas: 1.0.3 jupyter-lab: 2.1.0 folium: 0.10.1


** 1. Standortinformationen vorbereiten ** -Die Positionsinformationen des zu zeichnenden Ortes wurden mit der Karte von Google aufgerufen, und die Zeichenfolge der URL wurde mit der Maus kopiert. Es war einfacher als "Über diesen Ort" auf der Google-Karte zu überprüfen, da jeder geografisch zu zeichnende Ort in der Nähe liegt. ** ・ Übrigens ist der Breitengrad "Breitengrad" und der Längengrad "Longtude" **. Wenn Sie suchen, werden sie in dieser Reihenfolge angezeigt. Im Fall der Corridor Street war dies beispielsweise "Breitengrad: 35.6749187, Längengrad: 139.7573871". Wir werden diesen Wert an jeder Stelle im Datenrahmen speichern.

** Die minimale Syntax für Folium lautet wie folgt. ** ** ** map = folium.Map (Position = [Breite, Länge des Referenzpunkts], zoom_start = anfängliche Vergrößerung) map

** 2. Codierung ** Der Code läuft in jupyter und die Karte wird in jupyter gezeichnet.

jupyter



#Beispiel für Code zum Zeichnen um Ginza
# 1.Bibliothek importieren

import folium
import pandas as pd

# 2.Speicherung von Positionsinformationen im Datenrahmen und Verarbeitung der Markierungsanzeige
plot_location = pd.DataFrame({
    'ginza':['Yurakucho_station','GinzaCorridorSteet','GinzaSix'],
    'latitude':[35.6749187 ,35.6703699 ,35.66695908],
    'longtude':[139.7606366 ,139.7573871 ,139.7618857],})

map = folium.Map(location=[35.6749187,139.7606366], zoom_start = 15)
for i, r in plot_location.iterrows():
    folium.Marker(location=[r['latitude'], r['longtude']], popup=r["ginza"]).add_to(map)

# 3.Kartenplot
map

Die Karte des Ginza-Gebiets ist jetzt eingezeichnet. Das Bild unten ist eine Bildschirmaufnahme, die jedoch in einem Jupyter-Notizbuch aufgezeichnet ist. Klicken Sie auf Corridor Street. Ich denke, es hängt von der Umgebung ab, aber ich konnte es nicht auf Japanisch anzeigen.

Der Text in diesem Popup ist der Ort, an dem die Markierung platziert werden soll, aber in "2. Speicherung von Positionsinformationen im Datenrahmen und Verarbeitung der Markierungsanzeige" entspricht der Teil, der jeden Punkt beschreibt. 'ginza':['Yurakucho_station','GinzaCorridorSteet','GinzaSix'],

Die Standortinformationen werden im "Datenrahmen" gespeichert. Wenn Sie sie jedoch direkt an Folium übergeben, können Sie sie in ein dreizeiliges Skript umwandeln. Wenn Sie jedoch einen "Datenrahmen" verwenden, können Sie ihn entwickeln, indem Sie einen Datensatz vorbereiten und die Anzahl der Basen erhöhen. Es scheint, dass einige der Vorfahren, die darauf verwiesen haben, in "csv" usw. gespeichert sind.

ginza_map.png

Wenn Sie die geplottete Karte speichern möchten, können Sie sie in "html" ausgeben, indem Sie ** "save" zusätzlich wie unten gezeigt ausführen. ** ** **

save


#Schreiben Sie die geplottete Karte in HTML
map.save("map_giza.html")

3. [Ergänzung] Umgebung

Dieses "Folium" ist eine sehr nützliche Bibliothek, die jedoch je nach Umgebung nicht wie erwartet funktioniert hat. Als Referenz finden Sie im Folgenden Informationen zu der Umgebung, in der dieses Skript ausgeführt wurde. Es handelt sich nur um Informationen zur Entwicklungsumgebung, diese hängen jedoch von der Browserumgebung ab, da ein Webbrowser verwendet wird. In der Tat wurden einige Terminals nicht anderswo geplant. Ich denke, es ist wahrscheinlich ein Browser-Problem.

Umgebung


less /etc/lsb-release

DISTRIB_ID=LinuxMint
DISTRIB_RELEASE=19.3
DISTRIB_DESCRIPTION="Linux Mint 19.3 Tricia"

(py3_env) $ pip3 --version
pip 9.0.1 from /home/xxx/py3_env/lib/python3.6/site-packages (python 3.6)
(py3_env)$ python -V
Python 3.6.9

$ pip3 show pandas
Name: pandas
Version: 1.0.3
Home-page: https://pandas.pydata.org
Requires: python-dateutil, pytz, numpy
 
(py3_env)$ pip3 show jupyterlab
Name: jupyterlab
Version: 2.1.0
Home-page: http://jupyter.org
Requires: notebook, tornado, jinja2, jupyterlab-server

(py3_env)$ pip3 show folium
Name: folium
Version: 0.10.1
Home-page: https://github.com/python-visualization/folium
Requires: numpy, jinja2, requests, branca

** Das obige ist ein Kartendiagramm mit Folium. ** ** **

Recommended Posts

[Für Anfänger] Skript innerhalb von 10 Zeilen (1.folium)
[Für Anfänger] Skript innerhalb von 10 Zeilen (8. Plotkarte mit Folium [2]
[Für Anfänger] Skript innerhalb von 10 Zeilen (4. Verbindung von Python zu sqlite3)
Skript innerhalb von 10 Zeilen (2.vimrc)
[Für Anfänger] Skript innerhalb von 10 Zeilen (3. Datenleser / CSV-Konvertierung)
[Für Anfänger] Skript innerhalb von 10 Zeilen (5. Resample von Zeitreihendaten mit Pandas)
[Für Anfänger] Skript innerhalb von 10 Zeilen (7. Skript, das CSV aus der SQLite3-Tabelle mit Bash ausgibt
Spacemacs-Einstellungen (für Anfänger)
Python Lehrbuch für Anfänger
Dikstra-Algorithmus für Anfänger
OpenCV für Python-Anfänger
Lernablauf für Python-Anfänger
CNN (1) zur Bildklassifizierung (für Anfänger)
Python3-Umgebungskonstruktion (für Anfänger)
Übersicht über Docker (für Anfänger)
Python #Funktion 2 für Super-Anfänger
Seaborn Basics für Anfänger ④ Pairplot
Grundlegende Python-Grammatik für Anfänger
100 Pandas klopfen für Python-Anfänger
Python #Funktion 1 für Super-Anfänger
Python #Liste für Super-Anfänger
~ Tipps für Python-Anfänger mit Liebe von Pythonista ③ ~
[Für Kaggle-Anfänger] Titanic (LightGBM)
Linux Command Memorandum [für Anfänger]
Praktische Linux-Verknüpfung (für Anfänger)