Altair:一个漂亮易用的数据可视化库

altair 是一个基于jupyter notebook的强大可视化库。它提供了强大而简洁的可视化语法,使我们能够快速构建各种统计可视化图表。
通过下面10行代码,你就能创建一个可交互的散点图:
import altair as altfrom vega_datasets import datacars = data.cars()alt.chart(cars).mark_point().encode( x='horsepower', y='miles_per_gallon', color='origin',).interactive()
1.准备
开始之前,你要确保python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章:超详细python安装指南 进行安装。
**(可选1) **如果你用python的目的是数据分析,可以直接安装anaconda:python数据分析与挖掘好帮手—anaconda,它内置了python和pip.
**(可选2) **此外,推荐大家用vscode编辑器,它有许多的优点:python 编程的最好搭档—vscode 详细指南。
请选择以下任一种方式输入命令安装依赖 :
windows 环境 打开 cmd (开始-运行-cmd)。macos 环境 打开 terminal (command+空格输入terminal)。如果你用的是 vscode编辑器 或 pycharm,可以直接使用界面下方的terminal.pip install altair vega_datasets2.基本使用
altair 中的数据是围绕 pandas dataframe 构建的。
我们首先导入 pandas 并创建一个简单的 dataframe 以进行可视化,a 列中有一个分类变量,b 列有一个数值变量:
import pandas as pddata = pd.dataframe({'a': list('cccdddeee'), 'b': [2, 7, 4, 1, 2, 6, 8, 4, 7]})altair 中的基本对象是chart,它将上述的数据作为单个参数:
import altair as altchart = alt.chart(data)到目前为止,我们已经定义了 chart 对象,但是我们还没有告诉图表对数据做任何事情。接下来会出现。
有了这个图表对象,我们现在可以指定我们希望如何可视化数据,比如作为点:
alt.chart(data).mark_point()然后对数据进行编码,比如指定 a 列为x,b列为y:
alt.chart(data).mark_point().encode( x='a', y='b')效果如下:
如果你希望聚合求得某列得平均值,你还可以这么做:
alt.chart(data).mark_point().encode( x='a', y='average(b)')
如果你希望使用柱状图,只需要把mark_point改为mark_bar:
alt.chart(data).mark_bar().encode( x='a', y='average(b)')
还可以获得水平柱状图,我们只需要把x和y对调一下:
alt.chart(data).mark_bar().encode( y='a', x='average(b)')除了点状图和柱状图,altair 还支持几十种图表类型:
更多的图表类型请在官网查看:
https://altair-viz.github.io/gallery/index.html
3.高级使用
你可以给图表自定义你喜欢的颜色和对应的横坐标纵坐标标题:
alt.chart(data).mark_bar(color='firebrick').encode( alt.y('a', title='category'), alt.x('average(b)', title='avg(b) by category'))
你还可以将图表保存为html:
chart = alt.chart(data).mark_bar().encode( x='a', y='average(b)',)chart.save('chart.html')如果你希望能够通过区间选择数据点并计数,你可以这么做:
import altair as altfrom vega_datasets import datasource = data.cars()brush = alt.selection(type='interval')points = alt.chart(source).mark_point().encode( x='horsepower', y='miles_per_gallon', color=alt.condition(brush, 'origin', alt.value('lightgray'))).add_selection( brush)bars = alt.chart(source).mark_bar().encode( y='origin', color='origin', x='count(origin)').transform_filter( brush)points & bars
跟牛逼的是,altair还可以做多图表联动:
# 公众号:python实用宝典 整合import altair as altfrom vega_datasets import datacars = data.cars.urlbrush = alt.selection_interval()chart = alt.chart(cars).mark_point().encode( y='horsepower:q', color=alt.condition(brush, 'origin:n', alt.value('lightgray'))).properties( width=250, height=250).add_selection( brush)chart.encode(x='acceleration:q') | chart.encode(x='miles_per_gallon:q')左边圈起来的 acceleration 数据点,右边会对应显示其 miles_per_gallon 数据点:
除了这些,altair还有更多的交互功能,比如选择框拖动、比例绑定、自动响应、表达式选择等等。

腾讯加码人工智能,让机器“理解”世界
库卡协作机器人iiwa和传统机器人KR内部结构解析
如何使用电路仿真app进行大致仿真
全球奢侈手机Top 10:最贵13万美元
Oculus Quest将是VR行业的一大进步
Altair:一个漂亮易用的数据可视化库
Polestar 2车机系统曝光,一场探索彩蛋的funny之旅
越南是否是制造业转移的下一站?
防水超声波传感器-超声波温度传感器
深圳率先发布无人机管理办法,推动无人机产业健康发展
用6N9C制作的耳机放大器,6N9C Headphone amplifier
苏州数字孪生工厂3D模型,三维可视化建模,三维虚拟仿真交互模型
建设智慧城市会引起怎样的反思
公司前台做一块6平方P2全彩高清LED屏的效果和预算
电子线路板3D检测方案的介绍
Python的受欢迎程度真的能超越JavaScript吗?
AD9250参数配置的程序(AD9250 参数配置 + Xilinx Kintex
从PCB颜色了解表面光洁度
数控钻床-垫板
电容容量随着工作电压变化而剧烈变化的情况分析