【Python】Pandas+Seaborn應用之簡單資料整理+橫向條形圖
先看一下資料和期望使的結果:
資料主要是各國新冠病毒每日確診、死亡和康復的人數統計。第一張圖需要找出感染總人數前20名的國家並畫出相應的橫向條形圖;第二張圖需要畫出感染總人數前5國家的感染數和康復數的條形圖。涉及的pandas操作主要是資料讀取、分組求和、按指定列排序、資料選取切片;涉及的seaborn(部分matplotlib)的操作主要是畫條形圖、寫數字註釋、畫圖例。
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import seaborn as sns
df = pd.read_csv("df.csv")#讀入資料
data = df.groupby("Country_Region").sum().reset_index()#分組求和
data = data.sort_values("Confirmed",ascending=False)#按"Confirmed"列降序
data = data.reindex(columns=["Country_Region","Confirmed","Recovered"])#選擇之後畫圖用到的列
data1 = data[0:20]#選擇前20行
Country1 = list(data1["Country_Region"])
Confirmed1 = list(data1["Confirmed"])
Rcovered1 = list(data1["Recovered"])#轉換成列表
plt.figure(figsize=(12, 12))#畫布
plt.xlabel('Confirmed')#行標籤
plt.ylabel('Country')#列標籤
g1 = sns.barplot(x=Confirmed1, y=Country1,ci=67,orient="h")#畫條形圖,orient="h"表示橫向條形圖
for i in range(len(Confirmed1)):
g1.text(Confirmed1[i],i,(lambda x:format(x,','))(Confirmed1[i]),color="black",ha="left")#新增數字標註,注意用lambda函式加千分位符
plt.show()
data2 = data[0:5]#選擇前5行
Country2 = list(data2["Country_Region"])
Confirmed2 = list(data2["Confirmed"])
Rcovered2 = list(data2["Recovered"])#轉化成列表
plt.figure(figsize=(16, 5))#畫布
plt.xlabel('Country')#行標籤
plt.ylabel('Rcovered')#列標籤
g2_1 = sns.barplot(x=Confirmed2,y=Country2,ci=67,orient="h",color="r")
g2_2 = sns.barplot(x=Rcovered2, y=Country2,ci=67,orient="h",color="g")
red_patch = mpatches.Patch(color='r', label='Confirmed')
green_patch = mpatches.Patch(color='g', label='Rcovered')#設定圖例文字和格式
legend = plt.legend(handles=[red_patch,green_patch])#畫圖例
for i in range(len(Confirmed2)):
g2_1.text(Confirmed2[i],i,(lambda x:format(x,','))(Confirmed2[i]),color="black",ha="left")
g2_2.text(Rcovered2[i],i,(lambda x:format(x,','))(Rcovered2[i]),color="black",ha="left")#新增數字標註
plt.show()
相關文章
- Python資料分析入門(十七):繪製條形圖Python
- python實現橫向拼接圖片Python
- 資料夾橫向排版
- bootstrap table 橫向滾動條boot
- 讓資料視覺化變得簡單 – JavaScript 圖形庫視覺化JavaScript
- canvas的簡單圓形進度條Canvas
- Google Reader替代服務簡單橫向評測Go
- SoviChart資料視覺化:條形圖(Bar chart)視覺化
- python資料視覺化-matplotlib入門(4)-條形圖和直方圖Python視覺化直方圖
- Win10如何將音量條從橫向變為豎向 win10音量條怎麼從橫向變為豎向Win10
- 內外網資料的簡單單向同步
- Excel怎麼橫向輸入資料?Excel
- EXCEL中如何橫向輸入資料?Excel
- 資料庫分頁;簡單整理測試資料庫
- Python(簡單圖形和檔案處理)程式設計Python程式設計
- 兩種方式實現橫向滾動條
- 圖形資料庫Neo4J簡介資料庫
- 用DECODE和CASE WHEN將多行單列資料改為單行多列資料(即豎向排列改為橫向排列)
- 分形、分形幾何、資料視覺化、Python繪圖視覺化Python繪圖
- 如何用CSS製作橫向選單?CSS
- android簡單的圖形特效處理Android特效
- 圖形介面的TCP/IP簡單通訊TCP
- shell的圖形化實現簡單示例
- 單向資料流
- vis.js條形圖JS
- 簡單易懂的雙向資料繫結解讀
- JavaScript實現簡單的雙向資料繫結JavaScript
- 簡單資料型別和引用資料型別對應棧和堆示意圖資料型別
- Excel圖表中使用形狀並將柱形圖中的柱條變為箭頭的簡單技巧Excel
- win7 資料夾共享簡單設定方法整理Win7
- Python Matplotlib繪製條形圖的全過程Python
- CSS3橫向導航選單效果CSSS3
- JavaScript橫向二級導航選單效果JavaScript
- 物件導向的例項應用:圖形計算器物件
- 第三篇:R語言資料視覺化之條形圖R語言視覺化
- 如何讓 fixed 定位的導航條可橫向滾動?
- 手動簡單實現Vue雙向資料繫結Vue
- 也談應用之“基石”——資料庫設計資料庫