python绘制三维动态柱状图-使用pyecharts模块
生活随笔
收集整理的這篇文章主要介紹了
python绘制三维动态柱状图-使用pyecharts模块
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
- 1. 原始數據
- 2. 代碼
- 3. 結果
當有數據想要進行橫向縱向同步比較時,三維柱狀圖是最好的選擇,目前基礎的word和excel還不具備此功能,可以使用專業畫圖軟件origin pro來做,python也是很多人首先想到的。網上搜了一下關于python繪制三維柱狀圖,沒有找到可用的,偶然間發現一個第三方庫pyecharts,不僅可以繪制三維圖,還能動態展示,生成的是html文件。
中文文檔地址:http://pyecharts.herokuapp.com/;github項目源碼
僅以下方數據示例,更復雜的操作請參看GitHub
1. 原始數據
我的原始數據都是按100算的,所以在函數中有用除以100計算,如果數據正好是1以內,可以不做除以100處理
2. 代碼
import random from pyecharts.faker import Faker from pyecharts import options as opts from pyecharts.charts import Bar3D import pandas as pd import numpy as np def read_do(): #負責數據的讀取和整理init_data=pd.read_excel(r"D:\python\pra\畫圖\青島指標.xlsx")init_data=np.array(init_data)data_tip=['GDP增速','常住人口城鎮化率','第二產業占GDP比重','第三產業占GDP比重','城市恩格爾系數','公園綠地建成區綠化覆蓋率','居民消費價格指數','商品零售價格指數','工業生產者出廠價格指數']data_year=[2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018]data_pre=[]num=1N=0for st in data_tip:ofr=0for dy in data_year:fuck = [st,dy,float(init_data[ofr][num]/100)] # 原始數據做除以100處理,使其位于0-1之間data_pre.append(fuck)N = N+1ofr = ofr+1num = num+1return data_pre def bar3d_base() -> Bar3D:data = read_do()data_tip=['GDP增速','常住人口城鎮化率','第二產業占GDP比重','第三產業占GDP比重','城市恩格爾系數','公園綠地建成區綠化覆蓋率', '居民消費價格指數','商品零售價格指數','工業生產者出廠價格指數']data_year=[2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018]c = (Bar3D().add("",data,xaxis3d_opts = opts.Axis3DOpts(data_tip,type_="category",max_=9),yaxis3d_opts = opts.Axis3DOpts(data_year,type_="time",max_=2019),zaxis3d_opts = opts.Axis3DOpts(type_="value",max_=1), # 此處最大值為1,也可以自行設置,不過值過大顏色都是紅色grid3d_opts = opts.Grid3DOpts(width="280",height="100")).set_global_opts(visualmap_opts = opts.VisualMapOpts(max_=1),title_opts = opts.TitleOpts(title = "青島指標"),))return c abc = bar3d_base() abc.render("青島指標.html")3. 結果
可以看到,圖片左側有一個顏色條,表示0-1的數值,故要將數據處理為0-1之間。
可以旋轉查看,是動態的。
總結
以上是生活随笔為你收集整理的python绘制三维动态柱状图-使用pyecharts模块的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 书籍推荐第一期
- 下一篇: JPEG转换成TIFF