今天给大家分享一个超酷的 python 库,altair

介绍
Altair 是一个基于Python的数据可视化库。它建立在Vega和Vega-Lite图形语法之上,使得创建复杂的交互式图形变得简单而直观。Altair的主要特点是其简洁的API、强大的交互性能以及对丰富数据源的支持。
安装
安装 Altair 非常简单,可以使用 pip 包管理器:
pip install altair vega_datasets
使用方式
要使用 Altair,您首先需要导入库以及您想要使用的数据集。Altair 与 Pandas 紧密集成,所以通常您会从 Pandas DataFrame 中创建图表:
import altair as alt
import pandas as pd
代码示例
以下是一个简单的例子,展示了如何使用 Altair 创建一个条形图:
# 导入库
import altair as alt
from vega_datasets import data
# 加载数据
cars = data.cars()
# 创建图表
chart = alt.Chart(cars).mark_bar().encode(
x='mean(Miles_per_Gallon)',
y='Origin',
color='Origin'
)
# 显示图表
chart.show()
这个例子首先加载了一个汽车数据集,然后创建了一个条形图,显示了不同产地汽车的平均每加仑行驶英里数。
高阶用法
交互式散点图
此示例展示如何创建一个交互式散点图,允许用户通过选择图例来过滤数据。
import altair as alt
from vega_datasets import data
# 加载数据
cars = data.cars()
# 创建选择器
legend_selection = alt.selection_multi(fields=['Origin'], bind='legend')
# 创建图表
scatter_plot = alt.Chart(cars).mark_circle(size=60).encode(
x='Horsepower',
y='Miles_per_Gallon',
color='Origin',
opacity=alt.condition(legend_selection, alt.value(1), alt.value(0.2))
).add_selection(
legend_selection
)
# 显示图表
scatter_plot.show()
数据转换和堆叠柱状图
以下代码演示了如何对数据进行转换并创建一个堆叠柱状图。
# 创建堆叠柱状图
stacked_bar = alt.Chart(cars).mark_bar().encode(
x='sum(Horsepower)',
y='Origin',
color='Cylinders:N'
).transform_filter(
legend_selection
)
# 显示图表
stacked_bar.show()
多图层图表
此示例展示如何将多个图表层叠在一起。
# 创建线图
line_chart = alt.Chart(cars).mark_line().encode(
x='Year:T',
y='average(Miles_per_Gallon)',
color='Origin'
).transform_filter(
legend_selection
)
# 组合图表
combined_chart = alt.layer(
scatter_plot,
line_chart
).resolve_scale(
y='independent'
)
# 显示图表
combined_chart.show()
交互式地图
使用 Altair 创建交互式地图。
import altair as alt
from vega_datasets import data
# 加载地理数据
states = alt.topo_feature(data.us_10m.url, 'states')
# 生成地图
map_chart = alt.Chart(states).mark_geoshape().encode(
color='population:Q'
).transform_lookup(
lookup='id',
from_=alt.LookupData(data.population_engineers_hurricanes.url, 'id', ['population'])
).properties(
width=500,
height=300
).project('albersUsa')
# 显示地图
map_chart.show()
总结
Altair 提供了一个强大且易于使用的平台,用于在Python中创建复杂的交互式数据可视化。它的简洁API和强大的底层机制使得即使是复杂的数据集也能轻松呈现。无论是数据科学家、分析师还是学生,Altair 都是探索和呈现数据的优秀工具。
jieba,一个神奇的 python 库
polars,一个神奇的 python 库