Pydeck, visualisasi data Python. Lapisan Kolom pada peta Carto.

Feb 18 2023
Saya akan menjelajahi kemampuan visualisasi data geo deck.gl dengan perpustakaan Python dan panda.

Saya akan menjelajahi kemampuan visualisasi data geo deck.gl dengan perpustakaan Python dan panda. Deck.gl adalah kerangka visualisasi bertenaga WebGL untuk kumpulan data berskala besar, dan pydeck adalah rendering spasial berskala tinggi untuk Python (diberdayakan oleh deck.gl).

Untuk proyek ini, saya menggunakan Jupyter Notebook — aplikasi web asli untuk membuat dan berbagi dokumen komputasi. Ini menawarkan pengalaman yang sederhana, efisien, dan berpusat pada dokumen.

Pustaka utama Python untuk proyek ini adalah pydeck. Secara default, pydeck 0.6 menyediakan petak peta dasar melalui Carto. Secara opsional, Anda dapat menggunakan kunci API Mapbox, dengan mendaftar ke Mapbox. Tapi, peta Carto sudah cukup untuk proyek ini.

Mari mengimpor pydeck melalui pip:

pip install pydeck

  1. Kita mulai dengan mengimpor pustaka Python penting untuk operasi kita: panda, pydeck, os , dan opsional matplotlib.pyplot (Saya dapat mengembangkan posting ini di masa mendatang)
  2. import pandas as pd
    import pydeck as pdk
    from pydeck.types import String
    import matplotlib.pyplot as plt
    import os
    

    os.listdir() ## checking the current file composition of the folder
    df = pd.read_excel('stores.xlsx') ## reading .xlsx file to Pandas DataFrame
    df.set_index('Location Name') ## setting indexing to store's name
    
           
                    

    df.columns
    
    # output
    # Index(['Location Name', 'Address line 1', 'Address line 2', 'Address line 3',
    #    'City Name', 'Latitude', 'Longitude', 'Lat', 'Long', 'Postal Code',
    #      'Results'],
    #     dtype='object')
    

    df2 = df[['Location Name', 'City Name', 'Latitude', 'Longitude', 'Lat', 'Long', 'Postal Code', 'Results']]
    df2
    

df2["Long"] = df2["Long"].astype(float)
df2["Lat"] = df2["Lat"].astype(float)
df2

layer = pdk.Layer(
    'ColumnLayer',
    df2,
    get_position=['Long', 'Lat'],
    get_elevation=["Results"],
    auto_highlight=True,
    elevation_scale=5,
    pickable=True,
    extruded=True,
    get_radius=100,
    get_fill_color=["Results * 10", "Results", "Results * 40", 220],
    coverage=1
)

# Set the viewport location
view_state = pdk.ViewState(
    longitude=25.336900,
    latitude=54.734235,
    zoom=2,
    min_zoom=5,
    max_zoom=15,
    pitch=40.5,
    bearing=-27.36)

r = pdk.Deck(layers=[layer], initial_view_state=view_state)
r.to_html('stores.html')