大数据可视化(三)时间数据可视化

时间分为连续型时间和离散型时间

连续型时间数据可视化

阶梯图

曲线保持在同一个值,直到发生变化,直接跳跃到下一个值,类似、

# 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")
)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值