用python做三維圖(數模整理1)

數模比賽結束啦,在這裏整理一下自己當時的代碼。今天先分享怎麼用python畫三維圖。
任務簡介:繪製加拿大不同地區(province)不同時間(year)的溫度(temperature)變化圖,不多說直接上代碼。

1 導入相關庫

#導入庫
import numpy as np  #多維數組必備庫
import matplotlib.pyplot as plt  #繪圖必備
from matplotlib import cm
from mpl_toolkits.mplot3d import Axes3D  #3D圖必備
import pandas as pd  #數據處理必備
import seaborn as sns     #好看的圖必備

2 讀取相關數據

#讀取相關數據
plt.rcParams['figure.figsize'] = (12, 7)
x = [i for i in range(0,11)]                       # 10個城市
y = [i for i in range(2008,2019)]                  #年份
z =np.array( t_mean_new["temperature"].tolist())   #加拿大每年各地區平均溫度

3 修改數據結構

因爲不清楚三維圖對於輸入的形式有什麼結構要求,當時這裏花了好長時間。三維圖肯定是三維數組啦!!!

xx1, yy1 = np.meshgrid(x, y)
newshape = (xx1.shape[0])*(xx1.shape[0])
y_input = yy1.reshape(newshape)
x_input = xx1.reshape(newshape)
z_input = z.reshape(newshape)

4 作圖

sns.set(style='white')
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_trisurf(x_input,y_input,z_input,cmap='rainbow')  #cmap選擇rainbow會很好看,五彩斑斕
#添加三個座標系的標籤
ax.set_ylabel('Year',fontsize  = 16) 
ax.set_xlabel('Province',fontsize  = 16) 
ax.set_zlabel('Temperature',fontsize  = 16) 
#保存圖片
plt.savefig('Canada3D.png', dpi=300)
#顯示
plt.show()

5 結果圖

結果圖還挺好看的,嘻嘻。
在這裏插入圖片描述
注:當時是有參考某位博主的代碼的,但是比賽後把全部收藏鏈接都清理了,所以如果博主看到可以聯繫我哦,小女謝過您的代碼,🙂

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章