Folium là một thư viện python rất mạnh mẽ cho phép bạn tạo các loại bản đồ Tờ rơi riêng biệt. Vì bản đồ Leaflet / folium có tính tương tác, vì vậy chúng rất lý tưởng để xây dựng dashborad.
Cài đặt
Cài đặt folium rất dễ dàng bằng cách sử dụng pip -
$pip install folium
Giống như bạn có thể thấy từ ảnh chụp màn hình bên dưới, bạn chỉ cần nhập lệnh trên vào bảng điều khiển / cmd của mình và pip sẽ cài đặt folium cũng như các phụ thuộc để cài đặt python của bạn.
Bản đồ cơ bản
#Import library import folium #Uses lat then lon. & zoomlevel 4.The bigger the zoom number, the closer in you get. mapOBJ = folium.Map(location=[17.3616, 78.4747], zoom_start = 4, tiles = 'Stamen Terrain') # save method of Map object, will create a map mapOBJ.save('map2.html')
Đầu ra
Trường hợp số 2:GeoJson
import folium import os from folium import features import numpy as np import pandas as pd N = 1000 lons = +5 - np.random.normal(size=N) lats = 48 - np.random.normal(size=N) data = { 'type': 'FeatureCollection', 'features': [ { 'type': 'Feature', 'geometry': { 'type': 'MultiPoint', 'coordinates': [[lon, lat] for (lat, lon) in zip(lats, lons)], }, 'properties': {'prop0': 'value0'} }, ], } m = folium.Map([17.3616, 78.4747], zoom_start = 10) m.add_child(features.GeoJson(data)) m.save('Features.html')
Đầu ra:
Trường hợp số 3:Điểm đánh dấu, Biểu tượng, Cửa sổ bật lên
import folium from folium import features m = folium.Map([17.3616, 78.4747], zoom_start = 15) mk = features.Marker([17.3616, 78.4747]) pp = folium.Popup('Charminar') ic = features.Icon(color='red') mk.add_child(ic) mk.add_child(pp) m.add_child(mk) m.save('Features_1.html')
Đầu ra
Trường hợp số 4
Tôi đã sử dụng một thư viện mới - vincent, Vincent lấy cấu trúc dữ liệu Python (bộ dữ liệu, danh sách, dicts và Pandas DataFrames) và dịch chúng sang ngữ pháp trực quan hóa Vega.
Sử dụng pip, rất dễ cài đặt vincent.
$pip install vincent
C:\WINDOWS\system32>pip install vincent Collecting vincent Downloading https://files.pythonhosted.org/packages/11/bf/a12ecaa21a2e376a16de67e09f64a38a4acd95e04e5dc35ad2f13a6f0bfd/vincent-0.4.4.tar.gz Requirement already satisfied: pandas in c:\python\python361\lib\site-packages (from vincent) (0.20.2) Requirement already satisfied: pytz >= 2011k in c:\python\python361\lib\site-packages (from pandas -> vincent) (2017.2) Requirement already satisfied: python-dateutil >= 2 in c:\python\python361\lib\site-packages (from pandas -> vincent) (2.6.0) Requirement already satisfied: numpy >= 1.7.0 in c:\python\python361\lib\site-packages (from pandas -> vincent) (1.16.0) Requirement already satisfied: six >= 1.5 in c:\python\python361\lib\site-packages (from python-dateutil >= 2 -> pandas -> vincent) (1.10.0) Building wheels for collected packages: vincent Running setup.py bdist_wheel for vincent ... done Stored in directory: C:\Users\rajesh\AppData\Local\pip\Cache\wheels\4c\0d\8a\65f34c765c6094a71cce3e42a49a26533eef61695e9b505f03 Successfully built vincent Installing collected packages: vincent Successfully installed vincent-0.4.4
import folium from folium import features import numpy as np import json import vincent N = 100 multi_iter2 = { 'x': np.random.uniform(size=(N,)), 'y': np.random.uniform(size=(N,)), } scatter = vincent.Scatter(multi_iter2, iter_idx='x', height=100, width=200) data = json.loads(scatter.to_json()) m = folium.Map([17.3616, 78.4747], zoom_start=10) mk = features.Marker([17.3616, 78.4747]) p = folium.Popup('Charminar') v = features.Vega(data, width='100%', height='100%') mk.add_child(p) p.add_child(v) m.add_child(mk) m.save('Features_2.html')
Đầu ra