python模块-altair

日常刷公众号时,看到一篇推文:还在用Matplotlib? 又一可视化神器Altair登场 .

python最大的优势就是有丰富且好用的模块,因此看到新的模块时,我就会想去试一试. 关于画图,早期都是用Excel的,后来在大物实验课上知道了Origin,也用过. 之后接触了matlab和R,也用过此两种软件. 印象里面,R的画图是非常丰富的,一般是用ggplot的,不过我倒也用过R的quantmod画过非常好看的股价K线图. 而python,用的则是matplotlib. 就我所掌握的而言,在画数据类图表时,python确实不如R. 因此掌握一个新的python模块也是挺有意义的. 而且我也统一只用python进行编程了. 写这个文章就是整理一下"altair"这个模块的常规用法,省的我以后要用之时盲目百度.


简单例子:

  1. 使用前先pip进行安装:
pip install altair
  1. altair内部的数据以pandas中的DataFrame格式存储,例:
data = pd.DataFrame({'country_id': ['A', 'B','C','D','E','F'],
                    'population': [1, 100, 200, 300, 400, 500],
                    'income':     [1000, 50, 200, 300, 200, 150]})
  1. 绘图:
c = alt.Chart(data)
c = c.mark_circle(size=200)
c = c.encode(x='population:Q',y='income:Q',
             color='country_id:N',
             tooltip=['country_id', 'population', 'income'])
#c.serve()
c.savechart('plot.html')
#c.display()
  1. 结果
python模块-altair_第1张图片
  1. 说明
  • tooltip是为了添加数据提示的功能 (鼠标悬停在数据上时,会显示该数据的详细信息 );
  • color='country_id:N'的"N"改成"Q",则颜色为渐变色(要求原变量为数值);
    • Q:连续实值变量;
    • O:离散有序变量;
    • N:离散无序变量;
    • T:时间或日期变量;
  • c.savechart('plot.html')表直接存储作图结果;
  • c.display()用以查看作图信息;

图形语法

Altair是基于图形语法的,只需要三个主要的参数:

  • Mark. 数据在图形中的表达形式。点、线、柱状还是圆圈?
  • Channels. 决定什么数据应该作为x轴,什么作为y轴;图形中数据标记的大小和颜色.
  • Encoding. 指定数据变量类型。日期变量、量化变量还是类别变量?

图形选择

Method Description
mark_area() 直方图
mark_bar()
mark_circle() 圆点
mark_line()
mark_point() 圆圈
mark_rule() 直方图(接触边界)
mark_square() 正方形点
mark_text() 指定字符为图形(设置size和text)
mark_tick()

通道选择

x,y轴或column、row

通道描述

Channel Altair Class Description
color Color The color of the mark
opacity Opacity The opacity of the mark
shape Shape The shape of the mark
size Size The size of the mark

通道排序

Channel Altair Class Description
order Order -
path Path -

后面一些变量设置还不甚了解,留待以后要用到时再慢慢尝试.


特点

  • Encoding中指定变量类型为量化变量,那么 Altair 将会使用连续的色标来着色(默认为浅蓝色-蓝色-深蓝色). 如果变量类型指定为类别变量,那么 Altair 会为每个类别赋予不同的颜色.;
  • 可以方便的从现有图表中创建新的图表,只需要改动X、Y轴的信息(可以只有一个坐标轴,但不能三个及以上);

你可能感兴趣的:(python模块-altair)