700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > python绘制三维动态柱状图-使用pyecharts模块

python绘制三维动态柱状图-使用pyecharts模块

时间:2019-04-06 11:18:09

相关推荐

python绘制三维动态柱状图-使用pyecharts模块

目录

1. 原始数据2. 代码3. 结果

当有数据想要进行横向纵向同步比较时,三维柱状图是最好的选择,目前基础的word和excel还不具备此功能,可以使用专业画图软件origin pro来做,python也是很多人首先想到的。网上搜了一下关于python绘制三维柱状图,没有找到可用的,偶然间发现一个第三方库pyecharts,不仅可以绘制三维图,还能动态展示,生成的是html文件。

中文文档地址:/;github项目源码

仅以下方数据示例,更复杂的操作请参看GitHub

1. 原始数据

我的原始数据都是按100算的,所以在函数中有用除以100计算,如果数据正好是1以内,可以不做除以100处理

2. 代码

import randomfrom pyecharts.faker import Fakerfrom pyecharts import options as optsfrom pyecharts.charts import Bar3Dimport pandas as pdimport numpy as npdef 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,,,,,,,,,,,,,,,,]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_predef bar3d_base() -> Bar3D:data = read_do()data_tip=['GDP增速','常住人口城镇化率','第二产业占GDP比重','第三产业占GDP比重','城市恩格尔系数','公园绿地建成区绿化覆盖率', '居民消费价格指数','商品零售价格指数','工业生产者出厂价格指数']data_year=[2000,2001,2002,,,,,,,,,,,,,,,,]c = (Bar3D().add("",data,xaxis3d_opts = opts.Axis3DOpts(data_tip,type_="category",max_=9),yaxis3d_opts = opts.Axis3DOpts(data_year,type_="time",max_=),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 cabc = bar3d_base()abc.render("青岛指标.html")

3. 结果

可以看到,图片左侧有一个颜色条,表示0-1的数值,故要将数据处理为0-1之间。

可以旋转查看,是动态的。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。