前言:
為了讓自己的圖片更加炫酷,我們今天請到了嘉賓subplot()函式,可以讓我們實作多子圖的效果,資料采用的是18年美賽E題的資料,在進行標準化處理以后進行的可視化,先上效果圖

是不是準備好學習了,GO!GO!GO!
目錄
一、函式介紹
二、相關代碼及資料
2.1 資料處理及展示
2.2 全部代碼含注釋
最終結果:
一、函式介紹
1.plt.subplot(nrows,ncols,index) 創建子圖
2. nrows引數指定將資料圖區域劃分成幾行
3. ncols引數指定將資料圖區域分成多少列
4. index 引數指定獲取第幾個區域
二、相關代碼及資料
2.1 資料處理及展示
2018年的美賽E題是制作國家脆弱性指數預測模型,資料來自于題目中提供的網址,資料一共有12項指標,為了統一,我們進行最大最小標準化法進行0-1標準化,

2.2 全部代碼含注釋
如果不知道怎么怎么讀取資料可以參考我之前的博客pandas讀取資料https://blog.csdn.net/Eli_change/article/details/112256966以及python檔案匯入用matplotlib制作圖片設定標注小白入門,功能性代碼,包學包會,文章略長https://blog.csdn.net/Eli_change/article/details/107437468
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 設定字體
plt.rcParams['axes.unicode_minus'] = False # 設定正負號
fig = plt.figure(figsize=(15,13),dpi=80) # 設定圖片的大小以及不透明度
# 因為是在jupyter notebook 里運行,所以x軸以這種方式寫入
z=[]
for i in range(len(df['C1: Security Apparatus'])):
z.append(i)
plt.subplot(4,3,1) # 創建4行3列的圖,第一張,以此類推
plt.bar(z,df['C1: Security Apparatus'],color='orange')
plt.xticks(range(30),[],rotation=90) # 替換x軸不顯示,為了美觀,只顯示最后一行的
plt.title('C1: Security Apparatus')
plt.subplot(4,3,2)
plt.bar(z,df['C2: Factionalized Elites'],color='r')
plt.title('C2: Factionalized Elites')
plt.xticks(range(30),[],rotation=90)
plt.subplot(4,3,3)
plt.bar(z,df['C3: Group Grievance'],color='skyblue')
plt.title('C3: Group Grievance')
plt.xticks(range(30),[],rotation=90)
plt.subplot(4,3,4)
plt.bar(z,df['E1: Economy'],color='pink')
plt.title('E1: Economy')
plt.xticks(range(30),[],rotation=90)
plt.subplot(4,3,5)
plt.bar(z,df['E2: Economic Inequality'],color='green')
plt.title('E2: Economic Inequality')
plt.xticks(range(30),[],rotation=90)
plt.subplot(4,3,6)
plt.bar(z,df['E3: Human Flight and Brain Drain'],color='purple')
plt.title('E3: Human Flight and Brain Drain')
plt.xticks(range(30),[],rotation=90)
plt.subplot(4,3,7)
plt.bar(z,df['P1: State Legitimacy'],color='yellow')
plt.title('P1: State Legitimacy')
plt.xticks(range(30),[],rotation=90)
plt.subplot(4,3,8)
plt.bar(z,df['P2: Public Services'],color='c')
plt.title('P2: Public Services')
plt.xticks(range(30),[],rotation=90)
plt.subplot(4,3,9)
plt.bar(z,df['P3: Human Rights'],color='brown')
plt.title('P3: Human Rights')
plt.xticks(range(30),[],rotation=90)
plt.subplot(4,3,10)
plt.bar(z,df['S1: Demographic Pressures'],color='lightblue')
plt.title('S1: Demographic Pressures')
plt.xticks(range(30),df['Country'],rotation=90)
plt.subplot(4,3,11)
plt.bar(z,df['S2: Refugees and IDPs'],color='#FFFACD')
plt.title('S2: Refugees and IDPs')
plt.xticks(range(30),df['Country'],rotation=90)
plt.subplot(4,3,12)
plt.bar(z,df['X1: External Intervention'],color='#228B22')
plt.title('X1: External Intervention')
plt.xticks(range(30),df['Country'],rotation=90)
plt.show()
最終結果:

如果對你有用,麻煩點贊,謝謝!
![]()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/259975.html
標籤:AI
