可视化折线圆形统计图_统计图表的优雅变换:Altair|可视化系列06

Altair简介

Altair是一个强大且简明的声明式统计可视化Python库,它能够快速绘制出各种优雅可交互的统计图表。 Altair[1]基于一个前端图表库Vega-Lite,因此绘图的成果也可以通过chart .to_json()在前端项目中结合vega库使用。Vega-Lite是一套交互式图形语法,通过简洁的JSON键值对配置快速生成可视化结果,来支持数据分析工作。Altair可读作阿泰尔,天文学中指牵牛星、牛郎星,是天鹰座中最明亮的恒星,用这个意象也表达了这个库的野望。

Altair的语法特点是,建立chart对象后,通过约定是什么图形(点、线、柱或其他)、轴域映射方式、颜色输出可视化图表。理念通过实践去理解,就不讲太虚的了,直接看绘图的框架。

基础绘图

Altair绘图代码框架如下:

import altair as altimport pandas as pddf=pd.DataFrame({
    'x':['Mon.','Tue.','Wed.','Thu.','Fri.'],                  'y':[76,37,90,60,50]})alt.Chart(df,width=400,height=300).mark_point().encode(    x='x',    y='y').interactive()

b5b743bec9ebb15558de9d633ab63dab.png

Altair散点图绘制效果

从上面的语句能看到的是其写法很像ggplot2、plotnine这类库:建立chart对象再声明图表类型和x、y轴数据映射,并可以用链式写法不断垒个性化配置上去,这也是声明式(declarative)语法的特点。

通过 pip install altair 安装好Altair库之后,通过alt.Chart(df, width=400, height=300)创建一个绘图对象,.mark_point()表明映射为散点图,散点图需要对应的x,y序列坐标,写在.encode()里, .interactive()让输出的图表有基础的交互功能。

.encode()对应的配置参数有:

•x: x轴的数据,水平方向数据序列;•y: y轴的数据列表,对应竖直方向;•size: 点状类型的半径,或其他类型的长度等;•color: 图形元素的颜色,支持CSS颜色的各种写法,可以是一列也可以是一个16进制的字符串;•opacity: 图元透明度,用的是opacity,不是alpha喔;•shape: 点状元素的形状;•tooltip: 鼠标放到图元上时显示的提示文本列;•order: 声明图层顺序;

另外column和row是在分面时用的,根据选定的列进行分面的水平拆分和垂直拆分。 Altair更擅长画统计图表,因此下面的案例在数据方面全用数据框(DataFrame)格式进行实践。

同样的数据、同样的列映射到x轴和y轴,encode的写法是一致的,改变图表类型只需要.mark_point变成.mark_line绘制折线图。

d632c0c809505cab514f57aae1b609fb.png

几种mark

从图中可以看出,Altair有好几种方法绘制出散点图,mark_point()统领散点图,而mark_circle()、mark_square()等和_point()的不同之处在于circle限制了用圆形,而point是可通过size配置形状的。

Altair可以轻松地绘制出折线图及阶梯线图。

alt.Chart(df,width=400,height=300).mark_line(color='#1EAFAE').encode(    x='x',    y='y')

16df265dd265f59ca8e5781eb5a647d5.png

Altair绘制折线图

在mark_line里设置interpolate为step-after折线图并阶梯线图。

#所用到的数据集df=
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值