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

    文章

    1352

    浏览量

    33733
  • python
    +关注

    关注

    51

    文章

    4675

    浏览量

    83466
  • Altair
    +关注

    关注

    0

    文章

    12

    浏览量

    9977
  • 数据可视化
    +关注

    关注

    0

    文章

    444

    浏览量

    10132
收藏 人收藏

    评论

    相关推荐

    可视化MES系统软件

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

    个数据可视化项目

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

    Ubuntu下试玩visionseed工具的数据可视化

    ,方位角和俯仰角。我运行了下方位角,看自己“摇头晃脑”的可视化数据也是蛮有趣的:通过这次的试玩,了解到VisionSeed功能的强大,不仅仅是集成了摄像头+AI芯片的模块,AI算法
    发表于 09-16 11:29

    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

    数据可视化在电力行业的应用前景如何?

    、信息管理和数据管理的量化展示,支持变电站多维数据的深度挖掘和智能分析。将实际生产业务无缝集成到平台上,使日常管理任务标准、自动和企业智能、专业管理。案例预览地址:https://
    发表于 07-06 07:44

    怎么做以中国地图为底图的数据可视化报表?

    就该地的销售数据进行分析和可视化展示,让浏览者能立即了解该地区的具体销售情况。浮窗效果浮窗效果我们也是常见的,比如说当鼠标经过某地时,就会在页面上出现浮窗,上面可以是
    发表于 07-06 16:07

    常见的几种可视化介绍

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

    基于OneNET View 3.0的可视化数据监测系统的设计资料分享

    姿态定位制作说明功能说明将维特WT901C姿态传感器数据通过合宙Air724UG-4G模块将数据传输到onenet云平台,并建立onenetview可视化界面成果展示可视化成果注:由于
    发表于 01-20 06:28

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

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

    SpeedBI数据可视化工具:浏览器上做分析

    数据源,如数据库、Excel、CSV等,从而满足不同用户的需求。 数据可视化图表多 SpeedBI数据分析云是
    发表于 08-22 10:55