点击蓝字
关注我们
Altair:让数据可视化变得超简单的Python神器
最近我在捣鼓数据可视化,发现了个宝贝 - Altair。这玩意儿简直是数据可视化界的一匹黑马啊!它基于 Vega 和 Vega- Lite,用起来贼简单,还能搞出漂亮得不得了的图表。我觉得吧,要是你也在用Python搞数据分析,那不学Altair简直就是亏大发了!
PART01
Altair是啥玩意儿?
Altair说白了就是个Python库,专门用来画图的。它不像其他那些画图的库那么复杂,用的是一种叫“ 声明式”的方法。啥意思呢?就是你只要告诉它你想要啥样的图,剩下的事儿它自己就搞定了。你不用管那些烦人的细节,比如坐标轴啊,图例啊啥的,Altair全帮你搞定。
import altair as alt
import pandas as pd
# 假设我们有个数据框
data = pd.DataFrame({
'x': [1, 2, 3, 4, 5],
'y': [1, 4, 9, 16, 25]
})
# 画个简单的散点图
chart = alt.Chart(data).mark_circle().encode(
x='x',
y='y'
)
chart.save('scatter_plot.html')
瞧见没?就这么几行代码,一个漂亮的散点图就出来了。是不是特别简单?
PART02
Altair的独门绝技
Altair最牛逼的地方在于它的“ 图层 ”概念。你可以像叠积木一样,把不同的图层叠在一起,整出各种复杂的图表来。
base = alt.Chart(data).encode(x='x')
line = base.mark_line()
points = base.mark_circle()
(line + points).save('line_with_points.html')
这段代码就画出了一个带点的线图。你看,我们先定义了一个基础图层,然后分别加了线和点,最后把它们加在一起。这种方法超级灵活,你想画啥都行。
温馨提示:Altair生成的是交互式图表,所以最好保存成HTML格式,这样你就能在浏览器里拖拽缩放啥的了。
PART03
Altair的配色有多骚?
说实话,Altair的默认配色就挺好看的。但是如果你想整点特别的,它也不会让你失望。
chart = alt.Chart(data).mark_bar().encode(
x='x',
y='y',
color=alt.Color('y', scale=alt.Scale(scheme='viridis'))
)
chart.save('colorful_bar.html')
这段代码用了 ‘viridis’ 配色方案,画出来的柱状图颜色从深蓝到黄色渐变,看着就让人觉得高大上。
PART04
交互功能,不服来战!
Altair的交互功能是真的牛。你可以轻松地加上缩放、平移、选择这些功能,让你的图表变得活灵活现的。
chart = alt.Chart(data).mark_circle().encode(
x='x',
y='y'
).interactive()
chart.save('interactive_scatter.html')
就这么简单,加个 .interactive()
你的图表就能缩放平移了。是不是很神奇?
PART05
数据转换,小菜一碟
有时候你的原始数据可能不太适合直接画图。别慌,Altair自带了一堆数据转换的功能,让你的数据变得更好画图。
chart = alt.Chart(data).transform_fold(
['y', 'x'],
as_=['variable', 'value']
).mark_bar().encode(
x='variable:N',
y='average(value):Q'
)
chart.save('transformed_bar.html')
这段代码把长数据变成了宽数据,然后画了个柱状图。Altair还有很多其他的转换功能,比如filter、calculate啥的,你可以慢慢探索。
PART06
小结一下
Altair虽然看起来简单,但是功能真的很强大。它能画出各种各样的图表,从简单的散点图到复杂的多图层交互式图表都不在话下。而且最重要的是,用起来真的很简单,你不用记那么多复杂的参数和设置。
如果你想学数据可视化,我强烈推荐你试试Altair。它不仅能让你快速画出漂亮的图表,还能帮你理解数据可视化的基本原理。相信我,用了Altair,你会发现数据可视化原来这么有意思!
好了,今天就聊到这儿吧。希望这篇文章能帮你入门Altair。记住,实践出真知,多试试多玩玩,你会发现更多Altair的妙用的!