
Haritalar yüzyıllardır insanların yollarını bulmasına ve çevrelerini anlamasına yardımcı olmuştur. Büyük veri çağında haritalar, veri görselleştirmenin vazgeçilmez bir aracı hâline geldi. Verileri sezgisel, etkileşimli ve kolay anlaşılır bir biçimde görselleştirmemizi sağlarlar. Haritalar, diğer görselleştirme türlerinde fark edilmesi zor olabilecek örüntüleri ve ilişkileri belirlememize yardımcı olabilir.
Plotly, Python için güçlü bir veri görselleştirme kütüphanesidir ve haritalar dâhil geniş bir yelpazede etkileşimli görselleştirmeler oluşturmanıza olanak tanır. Plotly’nin avantajlarından biri, Pandas ve NumPy gibi diğer Python kütüphaneleriyle sorunsuz çalışacak şekilde tasarlanmış olmasıdır. Bu da verileri içe aktarmayı ve düzenlemeyi, ayrıca özel ihtiyaçlarınıza göre görselleştirmeler oluşturmayı kolaylaştırır. Plotly öğrenmek isterseniz Python ile Plotly’ye Giriş: Veri Görselleştirme kursumuza göz atın.
Bu eğitimde, Python’da Plotly kullanarak basit ve etkileşimli haritaları adım adım nasıl oluşturup özelleştireceğinizi öğreneceksiniz. Ayrıca, ülkeler, eyaletler veya şehirler gibi belirli coğrafi alanlara ait verileri renk kodlamasıyla gösteren özel bir harita türü olan Choropleth haritalarını da nasıl oluşturacağınızı öğreneceksiniz.
Yaygın Plotly Harita Görselleştirmeleri
Önce Plotly ile oluşturabileceğiniz farklı harita türlerine bakalım.
ScatterGeo Grafiği
Scattergeo() fonksiyonu, coğrafi bir harita üzerinde dağılım grafiği oluşturmak için kullanılır. Yani her bir noktanın bir şehir veya simge yapı gibi belirli bir coğrafi konumu temsil ettiği bir harita üzerinde noktalar çizebilirsiniz.
Örneğin, dünyanın farklı şehirlerinin enlem ve boylam koordinatlarını içeren bir veri kümeniz varsa, bu şehirleri dünya haritası üzerinde çizmek için Scattergeo() kullanabilirsiniz.
Haritadaki her nokta belirli bir şehrin konumunu temsil eder ve şehirlerin nüfusu veya sıcaklığı gibi farklı özelliklerini göstermek için her noktanın boyutunu, rengini ve şeklini özelleştirebilirsiniz.
Bu fonksiyon; hava tahmini, nüfus analizi ve iş haritalama gibi veri görselleştirme ve analiz uygulamalarında sıkça kullanılır. Veri noktalarınızın mekânsal dağılımını göstererek ve tabloda ya da grafikte görünmeyebilecek örüntüleri ya da eğilimleri vurgulayarak verilerinizi daha anlamlı bir şekilde görselleştirmenize yardımcı olabilir.
Plotly’de ScatterGeo grafiği oluşturma örneği
import plotly.express as px
import pandas as pd
# Import data from USGS
data = pd.read_csv('https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_month.csv')
# Drop rows with missing or invalid values in the 'mag' column
data = data.dropna(subset=['mag'])
data = data[data.mag >= 0]
# Create scatter map
fig = px.scatter_geo(data, lat='latitude', lon='longitude', color='mag',
hover_name='place', #size='mag',
title='Earthquakes Around the World')
fig.show()
Çıktı:

Bu kod örneği, dünya genelindeki deprem konumlarının etkileşimli bir coğrafi haritasını oluşturmak için Plotly kullanır. USGS web sitesinden deprem verilerini bir pandas DataFrame’ine aktarır ve büyüklük değeri eksik veya geçersiz olan satırları kaldırır.
Ardından kod, deprem konumlarını gösteren bir dağılım haritası oluşturmak için px.scatter_geo yöntemini kullanır; daha büyük depremler daha koyu renklerle gösterilir. hover_name parametresi, bir işaretçinin üzerine gelindiğinde konum adını gösterecek şekilde ayarlanmıştır.
Son olarak, kod harita başlığını ayarlar ve fig.show() ile haritayı görüntüler. Bu tür bir harita, deprem örüntülerini keşfetmek ve küresel sismik etkinlik hakkında içgörü elde etmek için kullanılabilir.
Temel grafikleri özelleştirme
1. Renk skalasını değiştirin: scatter_geo fonksiyonundaki color parametresi, depremlerin büyüklüğünü işaretçilerin rengine eşler. Büyüklük değerlerini daha iyi temsil etmek için renk skalasını özelleştirebilirsiniz.
fig = px.scatter_geo(data, lat='latitude', lon='longitude', color='mag',
hover_name='place', color_continuous_scale='reds',
title='Earthquakes Around the World')
fig.show()
Çıktı:

2. İşaretçi boyutunu değiştirin: Depremlerin büyüklüğünü daha iyi yansıtmak için işaretçilerin boyutunu özelleştirebilirsiniz.
fig = px.scatter_geo(data, lat='latitude', lon='longitude', color='mag',
hover_name='place', size='mag', size_max=10,
title='Earthquakes Around the World')
fig.show()
Çıktı:

3. Arka plan rengini değiştirin: Haritanın arka plan rengini görsel olarak daha çekici olacak şekilde değiştirebilirsiniz.
fig = px.scatter_geo(data, lat='latitude', lon='longitude', color='mag',
hover_name='place', color_continuous_scale='reds',
title='Earthquakes Around the World')
fig.update_layout(geo=dict(bgcolor='black'))
fig.show()

Plotly’de görselleştirme olanakları ve gelişmiş özelleştirme hakkında daha fazla bilgi edinmek isterseniz, Bekhruz Tuychiev’in Python Plotly Express Eğitimi: Etkileyici Görselleştirmelerin Kilidini Açın yazısına göz atın.
Haritayı etkileşimli bir HTML dosyası olarak kaydetme
plotly.io modülündeki write_html() fonksiyonunu kullanarak bir Plotly figürünü HTML dosyası olarak kaydedebilirsiniz. İşte bir örnek:
import plotly.io as pio
pio.write_html(fig, file='earthquakes.html', auto_open=True)

Choropleth haritalar
Choropleth harita, ülkeler, eyaletler veya iller gibi farklı bölgelerdeki veri değerlerini farklı renkler veya tonlarla temsil eden bir harita türüdür. Choropleth haritada her bölge, nüfus, gelir veya sıcaklık gibi belirli bir veri değişkeninin değerine göre renklendirilir.
Choropleth haritalar; seçim haritalama, demografik analiz ve coğrafi veri görselleştirme gibi çeşitli uygulamalarda kullanılabilir. Tabloda veya klasik bir grafikte fark edilmeyebilecek veri örüntüleri ve eğilimleri görmenize yardımcı olur ve kitlenize bilgi aktarmanın güçlü bir yolunu sunar.
Plotly’deki scatter_geo ve Choropleth fonksiyonlarının ikisi de coğrafi görselleştirmeler oluşturmak için kullanılsa da, en uygun oldukları veri türleri ve veriyi harita üzerinde temsil etme biçimleri açısından farklıdır. scatter_geo fonksiyonu, her noktanın bir şehir, simge yapı veya deprem gibi belirli bir coğrafi konumu temsil ettiği durumlarda tekil veri noktalarını harita üzerinde çizmek için en uygundur.
Buna karşılık, Choropleth fonksiyonu; ülkeler, eyaletler veya iller gibi bölgeler genelinde birleştirilmiş veya ortalaması alınmış verileri görselleştirmek için kullanılır. Her bölge, nüfus yoğunluğu, ortalama gelir veya işsizlik oranı gibi belirli bir veri değişkeninin değerine göre renklendirilir.
Plotly’de Choropleth harita oluşturma örneği
import plotly.express as px
import pandas as pd
# Import data from GitHub
data = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/gapminder_with_codes.csv')
# Create basic choropleth map
fig = px.choropleth(data, locations='iso_alpha', color='gdpPercap', hover_name='country',
projection='natural earth', title='GDP per Capita by Country')
fig.show()
Çıktı:

Veri çerçevemizde year adlı bir zaman boyutu olduğunu fark edin. 1952’den 2007’ye kadar uzanır. Bu boyutu görselleştirmeyi canlandırmak için kullanabiliriz. Aşağıdaki örneğe bakın.
Örnek Veri Kümesi:

import plotly.express as px
import pandas as pd
# Import data from GitHub
data = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/gapminder_with_codes.csv')
# Create basic choropleth map
fig = px.choropleth(data, locations='iso_alpha', color='gdpPercap', hover_name='country',
projection='natural earth', animation_frame='year',
title='GDP per Capita by Country')
fig.show()
Çıktı:

Sonuç
Büyük veri çağında haritalar, veri görselleştirmenin vazgeçilmez araçlarıdır. Plotly, Python için güçlü bir veri görselleştirme kütüphanesidir ve çeşitli etkileşimli haritalar oluşturmanıza olanak tanır. Scattergeo ile belirli coğrafi konumlara karşılık gelen veri noktalarını çizebilirken, Choropleth bölge, şehir, ülke gibi farklı boyutlar genelinde birleştirilmiş verileri görselleştirmek için idealdir.
Plotly’de daha gelişmiş özelleştirme seçeneklerini keşfetmek ya da olanakları hakkında daha fazlasını öğrenmek isterseniz, en sık kullanılan Plotly fonksiyonları ve seçeneklerine hızlı bir başvuru sunan Python Plotly Express Cheat Sheet’e göz atın.

