Py学习  »  Python

altair,一个超酷的 python 库

Python绿色通道 • 1 年前 • 296 次点击  


今天给大家分享一个超酷的 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 库


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/165552