0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

科技绿洲 来源:Python实用宝典 作者:Python实用宝典 2023-10-21 10:43 次阅读

Altair 是一个基于Jupyter Notebook的强大可视化库。它提供了强大而简洁的可视化语法,使我们能够快速构建各种统计可视化图表。

通过下面10行代码,你就能创建一个可交互的散点图:

import altair as alt

from vega_datasets import data
cars = data.cars()

alt.Chart(cars).mark_point().encode(
    x='Horsepower',
    y='Miles_per_Gallon',
    color='Origin',
).interactive()

图片

1.准备

开始之前,你要确保Pythonpip已经成功安装在电脑上,如果没有,可以访问这篇文章:超详细Python安装指南 进行安装。

**(可选1) **如果你用Python的目的是数据分析,可以直接安装Anaconda:Python数据分析与挖掘好帮手—Anaconda,它内置了Python和pip.

**(可选2) **此外,推荐大家用VSCode编辑器,它有许多的优点:Python 编程的最好搭档—VSCode 详细指南

请选择以下任一种方式输入命令安装依赖

  1. Windows 环境 打开 Cmd (开始-运行-CMD)。
  2. MacOS 环境 打开 Terminal (command+空格输入Terminal)。
  3. 如果你用的是 VSCode编辑器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install altair vega_datasets

2.基本使用

Altair 中的数据是围绕 Pandas Dataframe 构建的。

我们首先导入 Pandas 并创建一个简单的 DataFrame 以进行可视化,a 列中有一个分类变量,b 列有一个数值变量:

import pandas as pd
data = pd.DataFrame({'a': list('CCCDDDEEE'),
                     'b': [2, 7, 4, 1, 2, 6, 8, 4, 7]})

Altair 中的基本对象是Chart,它将上述的数据作为单个参数

import altair as alt
chart = 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 alt
from vega_datasets import data

source = 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 alt
from vega_datasets import data

cars = data.cars.url
brush = 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还有更多的交互功能,比如选择框拖动、比例绑定、自动响应、表达式选择等等。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据分析
    +关注

    关注

    2

    文章

    1441

    浏览量

    34041
  • python
    +关注

    关注

    56

    文章

    4792

    浏览量

    84613
  • Altair
    +关注

    关注

    0

    文章

    18

    浏览量

    10004
  • 数据可视化
    +关注

    关注

    0

    文章

    464

    浏览量

    10251
收藏 人收藏

    评论

    相关推荐

    可视化MES系统软件

    困难的问题,提高系统的构件速度,降低构件成本。所以本系统采用SOA 架构。采用C#,.NET 开发,企业数据库采用ORACLE数据库管理,利用GDI+、OWC等绘图工具和Dundas数据可视化
    发表于 11-30 19:55

    个数据可视化项目

    2017年十大最佳数据可视化项目
    发表于 08-22 09:35

    python数据可视化的方法和代码

    Python数据可视化汇总
    发表于 10-14 14:59

    Python数据可视化专家的七秘密

    分享 Python数据可视化专家的七秘密
    发表于 05-15 06:43

    15玩转数据可视化的技巧

    高手总结的15技巧,让你轻松玩转数据可视化
    发表于 05-22 09:59

    Python数据可视化

    Python数据可视化:网易云音乐歌单
    发表于 07-19 08:30

    三维可视化的应用和优势

    。  如设备出现问题,可以更加直观的通过三维可视化运维系统发现,因为会在系统内出现数据异常,甚至可以通过设置相对的阈值来进行提醒,使得设备出现问题后能够第时间发现,减少维修时间和开支。提升设备的工作效率
    发表于 12-02 11:52

    般图表做不了的分析,BI数据可视化图表可以

    随着业务变化,分析场景细分,出现了越来越多的般图表做不了的分析,比如分析顾客满意度,又比如分析展示运动轨迹、多项目进程等。面对这些分析需求,我们通常会采用数据可视化工具上的专用可视化
    发表于 01-15 10:22

    常见的几种可视化介绍

    说说常见的几种可视化、信息可视化信息可视化就是对抽象数据进行直观视觉呈现的研究,抽象数据既包含
    发表于 07-12 07:49

    经验分享|BI数据可视化报表布局——容器

    ,通过点击BI数据可视化报表设计页上方的【+】,点击【容器】或【选项卡容器】即可应用。容器:同一个平面上放多个数据可视化图表;选项卡容器:同
    发表于 03-15 17:10

    使用Python可视化数据,机器人开发编程

    机器学习开发,与Mail.Ru Search数据分析负责人Egor Polusmak和Mail.Ru Group数据科学家Yury Kashnitsky起探索如何使用Python可视化
    的头像 发表于 03-15 16:56 8976次阅读

    数据可视化的常用技术和并行与原位可视化方法分析

    数据可视化就是将抽象的“数据”以可见的形式表现出来,帮助人理解数据。大数据可视化相对传统的
    的头像 发表于 04-17 16:51 6417次阅读

    Charts.css是用于数据可视化的新的开源框架

    【导语】 :Charts.css 是用于数据可视化的开源 CSS 框架,帮助用户理解数据,帮助开发人员使用简单的 CSS 类将数据转换为漂亮
    的头像 发表于 04-13 10:48 1966次阅读

    使用Python来收集、处理和可视化人口数据

    分析和可视化: pandas:提供高性能、易用数据结构和数据分析工具的
    的头像 发表于 06-21 17:08 1374次阅读
    使用Python来收集、处理和<b class='flag-5'>可视化</b>人口<b class='flag-5'>数据</b>

    非常棒的可视化:PyG2Plot

    给大家推荐的这个开源项目是非常棒的可视化 -- PyG2Plot 。 PyG2Plot 可视化 这个Python
    的头像 发表于 10-21 11:32 1203次阅读
    <b class='flag-5'>一</b><b class='flag-5'>个</b>非常棒的<b class='flag-5'>可视化</b><b class='flag-5'>库</b>:PyG2Plot