1、从pyecharts中导入Bar3D模块。from pyecharts import Bar3D
2、假设我们的数据集是一个数据框。data=pd.DataFrame({'month':['1月','2月','3月','1瘅莹遒淄月','2月','3月'],'city':['北京','北京','北京','上海','上海','上海'],'sales':[400,500,430,550,600,420]})该数据集有三个维度,分别是month、city、sales。其中month、city是类别变量,sales是数值型变量。
3、由于Bar3D处理的数据要求是列表型,这里对数据框数据做一些处理。x,y轴表示类目轴,取值是独立不重复的。x_name=list(set(data.iloc[:,0]))y_name=list(set(data.iloc[:,1]))结果为:x_name['上海', '北京']y_name['2月', '3月', '1月']
4、将原始数据框数据转换成列表型。data_xyz=[]for i in range(len(data)): 旌忭檀挢x=x_name.index(data.iloc[i,0]) y=y_name.index(data.iloc[i,1]) z=data.iloc[i,2] data_xyz.append([x,y,z])运行结果:data_xyz[[1, 2, 400], [1, 0, 500], [1, 1, 430], [0, 2, 550], [0, 0, 600], [0, 1, 420]]注意:这里将类别数据转换成了数值数据,便于在x、y、z轴绘制出图形。
5、初始化图形。bar3d=Bar3D("1-3月各城市销量","单位:万件",title_pos="center",width=1200,height=800)
6、添加数据层,并配置图形参数。bar3d.add('挢旗扦渌;',x_name,y_name,data_xyz,is忧溲枷茫_label_show=True,is_visualmap=True, visual_range=[0, 500],grid3d_width=150, grid3d_depth=50)备注:''表示图表标题为空,x_name、y_name是类别值,data_xyz是处理后的数据,is_label_show=True表示显示数据标签,visual_range调整数据颜色深度,这里超过500的数值颜色更深,grid3d_width、grid3d_depth分别是柱形宽度和高度。
7、保存并查看图形。bar3d.render("sales.html")利用os.getwd()找到工作空间,打开sales.html即可查看柱形图。