Python資料互動式視覺化 地理資料

2021-10-10 19:09:57 字數 2208 閱讀 1574

霍羅珀斯地圖是具有不同劃分的區域的對映,該劃分具有不同顏色,以指示該劃分中特定特徵的值。 該劃分可以是國家,州,地區或任何其他有據可查的區域。

例如,您可以使用世界地圖,國家/地區地圖上的國家/地區人口視覺化,或使用choropleth地圖使用某種技術的人口百分比視覺化。

在此,我們將使用在《資料世界》(中發布的網際網路使用統計資料,並介紹2023年至2023年期間每個國家使用網際網路的人口百分比 。

您可以使用以下**檢視資料集:

internet_usage_df.head()結果如下:

圖略您是否注意到資料集中稱為**的功能? 這是指由稱為iso 3166-1的標準分配給每個國家的**。 它被廣泛使用,因此世界各地的開發人員都有一種通用的方式來引用和訪問任何資料中的國家/地區名稱。 正如我們很快將看到的那樣,**功能還可使用plotly將資料對映到世界地圖上的適當位置。

建立全球霍羅珀斯地圖

在本建立中,我們將使用「資料中的世界」資料集生成乙個世界範圍的choropleth對映,資料集鏈結。由於dataframe包含多年的記錄,因此我們將資料的第乙個子集擴充套件到乙個特定的年份(例如2023年)。然後,我們將使用該子集生成一張全球地圖。 為此,請執行以下步驟:

import pandas as pd

*   從.csv檔案中讀取資料:

結果:

圖略* locations:設定為dataframe中包含iso 3166國家/地區**的列的名稱。

* color:設定為包含數字特徵的列的名稱,將使用該特徵對地圖進行顏色編碼。

* hover_name:設定為包含懸停在地圖上時要顯示的要素的列的名稱。

* color_continuous_scale:這設定為配色方案,例如藍色

* 使用plotly庫的choropleth函式生成互動式的全球choropleth地圖:

**略輸出結果:

顯示區域是加拿大的世界範圍的地圖

圖略顯示區域是羅馬尼亞的世界範圍的地圖

圖略這就是獲得美麗繪圖的快速方法!

讓我們仔細檢視該圖,看看觀察結果是否與我們的常識相符。 如您所料,西方世界的網際網路使用率高於東方。

將滑鼠懸停在地圖上。 有趣的是,從上下兩圖中可以看出,與美國和大多數歐洲國家(〜59.5)相比,澳大利亞和加拿大的網際網路訪問人口比例更高(〜91.6)。

繪圖還顯示什麼? 您是否看到了繪圖右上方的側邊欄? 在這裡,您將看到選擇型別,放大和縮小,重置圖,甚至在選擇的配置中拍攝圖快照的選項。

#### 調整世界範圍內的choropleth地圖

我們將對整體波形圖的布局進行一些簡單的更改,例如將地圖投影從平面更改為自然地球,縮放到特定區域,使用update_layout函式向地圖新增文字,以及新增旋轉功能。 以下**演示了如何將這些功能新增到地圖。

* 匯入python模組

*   由於dataframe包含來自多年的記錄,因此將資料細分為特定的一年:

```internet_usage_2016 = internet_usage_df.query("year==2016")

**略

結果:圖略

真好。 但是,可以說,我們只對看到整個亞洲大陸的網際網路使用感興趣。

**略輸出結果:

圖略您是否嘗試過拖**並注意到它可以上下或左右移動? 如果繪圖可以像真實的地球一樣旋轉不是很好嗎? 好吧,這也很容易實現。 您需要做的就是更改地圖的投影樣式。

詳情參閱

Python資料互動式視覺化 互動式視覺化

雖然靜態資料視覺化是向提取和解釋資料集所擁有的價值和資訊這一目標邁出的巨大飛躍,但互動性的增加使這些視覺化向前邁了一大步。互動式資料視覺化具有以下特點 讓我們從乙個示例開始,了解通過互動式視覺化可以實現的目標。讓我們考慮乙個註冊健身房會員的資料集 圖略以下是箱形圖形式的靜態資料視覺化,它描述了按性別...

dash文件 Part4 互動式視覺化

dash core components庫包含乙個名為graph的元件 dcc.graph元件具有四個可以通過使用者互動進行更改的屬性 hoverdata,clickdata,selecteddata,relayoutdata。當將滑鼠懸停 單擊點或在圖形中選擇點的區域時,這些屬性會更新,將互動活動...

使用Dash開發互動式資料視覺化網頁 頁面布局

後續的操作前,需要安裝如下python包 pip install dash 0.20.0 the core dash backend pip install dash renderer 0.11.2 the dash front end pip install dash html component...