平常我們看到的物體一般是三維空間中的立體圖形,今天跟大家一起來學習用Python繪製立體圖形。
導入繪圖數據
繪製三維圖
2.1 繪製三維線性圖
2.2 用股票數據繪製三維折線圖
2.3 用股票數據繪製三維散點圖
2.4 用股票數據繪製三維柱狀圖
2.5 用bar3d函數繪製三維柱狀圖
import osimport pandas as pd
os.chdir(r'F:\公眾號\6.學習python') date = pd.read_csv("股票數據.csv", encoding = 'GBK') 註:如需文中數據進行練習,可到公眾號中回復「股票數據波動」即可免費獲取。1 繪製三維線性圖
為了熟悉三維空間圖形的繪圖原理,首先創建由5個點依次連接而成的三維線圖,具體語句如下:import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D
plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False
plt.subplot(projection='3d') x = [0, 0, 1, 4, 5] y = [1, 1, 1, 1, 2] z = [2, 0, 3, 4, 5] plt.plot(x, y, z) plt.xlabel('x軸') plt.ylabel('y軸') plt.title('三維線圖') plt.show()2 用股票數據繪製三維折線圖
按年月分組,統計股票收盤價的均值,並以年對應的標籤為x軸,月對應的標籤為y軸,收盤價對應的數值為z軸,繪製三維折線圖,具體語句如下:date = date.set_index('日期') date.index = pd.to_datetime(date.index) result = date[['收盤價']].groupby([date.index.year, date.index.month]).mean() plt.subplot(projection='3d') plt.plot(result.index.codes[0], result.index.codes[1], result['收盤價']) plt.xlabel('對應年標籤') plt.ylabel('對應月標籤') plt.title('按年月繪製收盤價的變化趨勢三維圖') plt.show()3 用股票數據繪製三維散點圖
按年月分組,統計收盤價均值、換手率均值、成交筆數均值,分別作為x軸、y軸、z軸繪製三維散點圖,具體語句如下:result = date.groupby([date.index.year, date.index.month]).agg(val1=('收盤價', 'mean'), val2=('換手率', 'mean'), val3=('成交筆數', 'mean'))ax = plt.subplot(projection='3d') ax.scatter(result['val1'], result['val2'], result['val3']) plt.xlabel('按年月統計收盤價均值') plt.ylabel('按年月統計換手率均值') plt.title('股票數據三維散點圖') plt.show()4 用股票數據繪製三維柱狀圖
按年月分組,統計股票收盤價的均值。並以月對應標籤為x軸,每月對應收盤價均值為y軸,年對應標籤為z軸,繪製三維柱狀圖,具體語句如下:import matplotlib.cm as cm
result = date[['收盤價']].groupby([date.index.year, date.index.month]).mean() plt.subplot(projection='3d') plt.bar(result.index.codes[1], result['收盤價'], zs=result.index.codes[0], color=cm.ScalarMappable().to_rgba(result.index.codes[0])) sm = plt.cm.ScalarMappable(norm=plt.Normalize(vmin=result.index.codes[0].min(), vmax=result.index.codes[0].max()))plt.colorbar(sm) plt.xlabel('對應月標籤') plt.ylabel('每月對應收盤價均值') plt.title('三維條形圖') plt.show()5 用bar3d函數繪製三維柱狀圖
為了讓三維柱狀圖繪製得更加清晰,用bar3d函數繪製一版三維柱狀圖,具體語句如下:result = date[['收盤價']].groupby([date.index.year, date.index.month]).mean() ax = plt.subplot(projection='3d') ax.bar3d(x=result.index.codes[0], y=result.index.codes[1], z=0, dx=1, dy=1, dz=result['收盤價'], color=cm.ScalarMappable().to_rgba(result.index.codes[0])) plt.xlabel('年對應標籤') plt.ylabel('月對應標籤') plt.title('3維直方圖') plt.show()至此,在Python中繪製三維圖已全部講解完畢,感興趣的同學可以自己實現一遍。
掃一掃關注我
19967879837
投稿微信號、手機號