大資料視覺化(三)時間資料視覺化
阿新 • • 發佈:2020-12-15
時間分為連續型時間和離散型時間
連續型時間資料視覺化
階梯圖
曲線保持在同一個值,直到發生變化,直接跳躍到下一個值,類似、
# datax = [1995,1996,1997,1998, 1999,2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,2009] # int資料當x軸顯示不出資料 datax = ['1995', '1996', '1997', '1998', '1999', '2000', '2001', '2002', '2003', '2004', '2005', '2006', '2007', '2008','2009'] datay = [0.32, 0.32, 0.32, 0.32, 0.33, 0.33, 0.34, 0.37, 0.37, 0.37, 0.37, 0.39, 0.41, 0.42, 0.44] line=( Line() .add_xaxis(datax) .add_yaxis("",datay,is_step=True)#is_step為false則為折線圖 .set_global_opts(title_opts=opts.TitleOpts("階梯圖"), yaxis_opts=opts.AxisOpts(min_=0.3), ) .set_series_opts() .render("result/jieti.html") )
折線圖:
顯示資料的變化趨勢
#圖3-6 #pyecharts實現 data=pd.read_csv("data/world-population.csv") datax=data["Year"] datay=data["Population"] line=( Line() .add_xaxis(datax) # .add_xaixs(datax) .add_yaxis("",datay) .set_global_opts(title_opts=opts.TitleOpts("sdfjsgjfs"), xaxis_opts=opts.AxisOpts(min_="1960"), yaxis_opts=opts.AxisOpts(min_=3000000000), ) .set_series_opts(label_opts=opts.LabelOpts(is_show=False)) .render("test.html") ) #matplotlib實現 plt.plot(datax,datay) plt.show()
擬合曲線(matplotlib實現的可能不考)
根據給定的離散資料點繪製的曲線
選擇適當的曲線型別來擬合觀測資料,並用擬合的曲線方程分析兩個變數間的關係
filename="data/unemployment-rate-1948-2010.csv" ya=[] xa=[] try: with open(filename) as f: reader=csv.reader(f) for datarow in reader: if reader.line_num!=-1: ya.append(float(datarow[3])) # print(datarow[3]) xa.append(int(datarow[1])) except csv.Error: print("Erroe resding") sys.exit(-1) plt.figure() plt.scatter(xa[:],ya[:],s=10,c='g',marker='o',alpha=0.5) ploy=np.polyfit(xa,ya,deg=3) plt.plot(xa,np.polyval(ploy,xa)) plt.show()
離散型時間資料視覺化
散點圖
用位置作為視覺線索
直觀的表現出影響因數和預測物件之間的總體關係趨勢,
柱狀圖:
用高度或長度的差異來顯示指標數值的一種圖形。
柱形間距決定了柱狀圖的美觀程度
data=pd.read_csv("data/hot-dog-contest-winners.csv")
datax=data["Year"].values.tolist()
datay=data["Dogs eaten"].values.tolist()
# print(datay)
bar=(
Bar()
.add_xaxis(datax)
.add_yaxis("",datay)
.set_global_opts(title_opts=opts.TitleOpts("柱狀圖"))
.render("result/zhu.html")
)
堆疊圖
若資料存在子分類,並且子分類相加有意義
data=pd.read_csv("data/hot-dog-places.csv")
data=data.T
datax=data.index.tolist()
y1=data[0].values.tolist()
y2=data[1].values.tolist()
y3=data[2].values.tolist()
#bar只支援list
bar=(
Bar()
.add_xaxis(datax)
.add_yaxis("A",y1,stack=True)
.add_yaxis("B",y2,stack=True)
.add_yaxis("C",y3,stack=True)
.set_global_opts(title_opts=opts.TitleOpts("柱狀圖"))
.render("result/zhudui.html")
)