python如何绘制两点间连线_如何利用Python的pyecharts绘制3d柱形图?
pyecharts繪制3d柱形圖要求數(shù)據(jù)為列表,數(shù)據(jù)類型為數(shù)值型。
bar3d.add('',x_axis,y_axis,data,...)中的x_axis,y_axis是文本類型,類別軸,而data則是三維數(shù)組。下面以一個例子來說明。
1.從pyecharts中導入Bar3D模塊。
from pyecharts import Bar3D
2.我們用如下數(shù)據(jù)框數(shù)據(jù)為例,簡單說明一下3d圖的繪制步驟。
?data=pd.DataFrame({'month':['1月','2月','3月','1月','2月','3月'],'city':['北京','北京','北京','上海','上海','上海'],'sales':[400,500,430,550,600,420]})?
該數(shù)據(jù)集有三個維度,分別是month、city、sales。其中month、city是類別變量,sales是數(shù)值型變量。
3.由于Bar3D處理的數(shù)據(jù)要求是列表型,這里對數(shù)據(jù)框數(shù)據(jù)做一些處理。
x,y軸表示類目軸,取值是獨立不重復的。
?x_name?=?list(set(data.iloc[:,?0]))y_name?=?list(set(data.iloc[:,?1]))?
結果為:
x_name
['上海', '北京']
y_name
['2月', '3月', '1月']
4.將原始數(shù)據(jù)框數(shù)據(jù)轉換成列表型。
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]]
注意:這里將類別數(shù)據(jù)轉換成了數(shù)值數(shù)據(jù),便于在x、y、z軸繪制出圖形
5.初始化圖形。
bar3d=Bar3D("1-3月各城市銷量","單位:萬件",title_pos="center",width=1200,height=800)
6.添加數(shù)據(jù)層,并配置圖形參數(shù)。
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是處理后的數(shù)據(jù),is_label_show=True表示顯示數(shù)據(jù)標簽, visual_range調(diào)整數(shù)據(jù)顏色深度,這里超過500的數(shù)值顏色更深,grid3d_width、grid3d_depth分別是柱形寬度和高度。
7.保存并查看圖形。
bar3d.render("sales.html")
利用os.getwd()找到工作空間,打開sales.html即可查看柱形圖。
總結
以上是生活随笔為你收集整理的python如何绘制两点间连线_如何利用Python的pyecharts绘制3d柱形图?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: git branch 为什么会进入编辑状
- 下一篇: python持久层框架_想设计一个Pyt