Πώς κάνουμε οπτική απεικόνιση δεδομένων σε χάρτη με χρήση Python

Πώς κάνουμε οπτική απεικόνιση δεδομένων σε χάρτη με χρήση Python
Πώς κάνουμε οπτική απεικόνιση δεδομένων σε χάρτη με χρήση Python

Στο άρθρο αυτό με τη βοήθεια του jupyter notebook και της python θα φτιάξουμε ένα heatmap. Θα κάνουμε μια πλήρη ανάλυση με χρήση dataframe, polynomial regression scatter plot, bar plot.

Ας ξεκινήσουμε φορτώνοντας τις βιβλιοθήκες που θα χρειαστούμε:

import folium  #είναι για την δημιουργία χάρτη
import json
import numpy as np  #easy maths calculations
import pandas as pd    #για τα dataframe
import matplotlib      #για τα γραφήματα
import matplotlib.pyplot as plt

geo_Data = 'https://raw.githubusercontent.com/python-visualization/folium/master/examples/data/world-countries.json'
Τι είναι όμως το json που βάλαμε στην μεταβλητή geo_Data;

Είναι ουσιαστικά ένα αρχείο με συσχετισμένες τις χώρες με τις συντεταγμένες τους που χρειάζεται στο folium ώστε να φτιάξει τα περιθώρια του χάρτη.

Στο επόμενο βήμα θα φορτώσουμε ένα csv με δεδομένα που βρήκα για την Ευρώπη και μας κάνουν για το παράδειγμα:

dfun = pd.read_csv('https://gist.githubusercontent.com/str4t3gos/d089dd9bab5d075a4c39e48da301b374/raw/653feea057e6b7aa54ee772922e696e7f7d1ba61/country_un2.csv')

Αφού έχουμε φορτώσει σε μια μεταβλητή που έχει πάρει τις ιδιότητες του panda dataframe ως csv με την εντολή .head() μας δείξει τα δεδομένα μας:

dfun.head()
Πώς κάνουμε οπτική απεικόνιση δεδομένων σε χάρτη με χρήση Python

Μπορούμε να  φιλτράρουμε τα δεδομένα του dataframe πχ να φέρουμε μόνο τα  δεδομένα του 2017:

dfun17 = dfun[dfun['YEAR'] == 2017]

dfun17.head()
Πώς κάνουμε οπτική απεικόνιση δεδομένων σε χάρτη με χρήση Python

Ας γεμίσουμε μια ακόμα μεταβλητή με τα δεδομένα του 2010 θα τα χρειαστούμε αργότερα:

dfun10 = dfun[dfun['YEAR'] == 2010]

dfun10.head()
Πώς κάνουμε οπτική απεικόνιση δεδομένων σε χάρτη με χρήση Python

Ορίζουμε σε μια μεταβλητή τις ιδιότητες του χάρτη από το folium και του βάζουμε τα χρώματα μαζί με τα υπόλοιπα ορίσματα μέσω της ιδιότητας choropleth.

*Να υπενθυμίσω ότι legend είναι το κουτάκι που επεξηγεί τι είναι σημαίνουν τα διαφορετικά χρώματα που βλέπουμε. Επίσης με την ιδιότητα .save έχουμε την δυνατότητα να το σώσουμε ως html.

Δημιουργία χάρτη
sf_map= folium.Map([40., 10.], zoom_start=4)

sf_map.choropleth(

    geo_data=geo_Data,

    name='choropleth',

    data=dfun17,

    columns=['COUNTRY','VALUE'],

    fill_color='BuPu',

    fill_opacity=0.7,

    line_opacity=0.5,

    key_on='feature.properties.name',

    legend_name='Unemployment Rate (%)'

)

folium.LayerControl().add_to(sf_map)

sf_map

#sf_map.save('europe17.html')
Πώς κάνουμε οπτική απεικόνιση δεδομένων σε χάρτη με χρήση Python

Ας δούμε και την διαφορά με  το 2010 που φτιάξαμε και το άλλο dataframe:

sf_map10= folium.Map([40., 10.], zoom_start=4)

sf_map10.choropleth(

    geo_data=geo_Data,

    name='choropleth',

    data=dfun10,

    columns=['COUNTRY','VALUE'],

    fill_color='BuPu',

    fill_opacity=0.7,

    line_opacity=0.5,

    key_on='feature.properties.name',

    legend_name='Unemployment Rate (%)'

)

folium.LayerControl().add_to(sf_map10)

sf_map10
Πώς κάνουμε οπτική απεικόνιση δεδομένων σε χάρτη με χρήση Python
Δημιουργία γραφήματος polynomial regression

Ας φτιάξουμε ένα γράφημα polynomial regression με τα δεδομένα της κάθε χρονιάς της Ελλάδας.

Θα χρειαστούμε ένα καινούργιο dataframe φιλτραρισμένο μόνο με την Ελλάδα και να κάνουμε import την βιβλιοθήκη seaborn:

dgreece = dfun[dfun['COUNTRY'] == 'Greece']

dgreecefinal = dgreece[['YEAR','VALUE']]

import seaborn as sns

ax = sns.regplot(x="YEAR", y="VALUE", data=dgreecefinal,

                 scatter_kws={"s": 80},

                 order=6, ci=None)
Πώς κάνουμε οπτική απεικόνιση δεδομένων σε χάρτη με χρήση Python
Δημιουργία γραφήματος bar plot

Ας πάμε στο τελευταίο παράδειγμα.

Θα φτιάξουμε ένα γράφημα barplot με τα δεδομένα της Ελλάδος από το 2007 και μετά:

dgreecefinal10years = dgreecefinal[dgreecefinal['YEAR'] >=2007]

dgreecefinal10years.head()
Πώς κάνουμε οπτική απεικόνιση δεδομένων σε χάρτη με χρήση Python

Θα χρησιμοποιήσουμε την βιβλιοθήκη matplotlib ορίζοντας τις παραμέτρο της και με την ιδιότητα .show κάνει την προβολή:

%matplotlib inline

ax=dgreecefinal10years.plot.bar('YEAR','VALUE')

ax.spines['left'].set_visible(False)

ax.spines['top'].set_visible(False)

ax.spines['right'].set_visible(False)

for p in ax.patches:

    ax.annotate(np.round(p.get_height(),decimals=2), 

                (p.get_x()+p.get_width()/2., p.get_height()), 

                ha='center', 

                va='center', 

                xytext=(0, 10), 

                textcoords='offset points',

                fontsize = 12

               )

ax.legend(['Greece'],loc='upper left')

plt.show()
Πώς κάνουμε οπτική απεικόνιση δεδομένων σε χάρτη με χρήση Python

Πηγές:

Μοιράσου το

Αφήστε μία απάντηση