Python可视化模块altair的使用详解

目录
  • Altair是啥
  • Altair初体验
    • 图表的保存
  • Altair之进阶操作

今天小编来和大家聊一下Python当中的altair可视化模块,并且通过调用该模块来绘制一些常见的图表,借助Altair,我们可以将更多的精力和时间放在理解数据本身以及数据的意义上面,从复杂的数据可视化过程中解脱出来。

Altair是啥

Altair被称为是统计可视化库,因为它可以通过分类汇总、数据变换、数据交互、图形复合等方式全面地认识数据、理解和分析数据,并且其安装的过程也是十分的简单,直接通过pip命令来执行,如下

pip install altair
pip install vega_datasets
pip install altair_viewer

如果使用的是conda包管理器来安装Altair模块的话,代码如下

conda install -c conda-forge altair vega_datasets

Altair初体验

我们先简单地来尝试绘制一个直方图,首先创建一个DataFrame数据集,代码如下

df = pd.DataFrame({"brand":["iPhone","Xiaomi","HuaWei","Vivo"],
                   "profit(B)":[200,55,88,60]})

接下来便是绘制直方图的代码

import altair as alt
import pandas as pd
import altair_viewer

chart = alt.Chart(df).mark_bar().encode(x="brand:N",y="profit(B):Q")
# 展示数据,调用display()方法
altair_viewer.display(chart,inline=True)

output

从整个的语法结构来看,首先使用alt.Chart()指定使用的数据集,然后使用实例方法mark_*()绘图图表的样式,最后指定X轴和Y轴所代表的数据,可能大家会感到好奇,当中的N以及Q分别代表的是什么,这个是变量类型的缩写形式,换句话说,Altair模块需要了解绘制图形所涉及的变量类型,只有这样,绘制的图形才是我们期望的效果。

其中的N代表的是名义型的变量(Nominal),例如手机的品牌都是一个个专有名词,而Q代表的是数值型变量(Quantitative),可以分为离散型数据(discrete)和连续型数据(continuous),除此之外还有时间序列型数据,缩写是T以及次序型变量(O),例如在网购过程当中的对商家的评级有1-5个星级。

图表的保存

最后的图表的保存,我们可以直接调用save()方法来保存,将对象保存成HTML文件,代码如下

chart.save("chart.html")

也可以保存成JSON文件,从代码上来看十分的相类似

chart.save("chart.json")

当然我们也能够保存成图片格式的文件,如下图所示

Altair之进阶操作

我们在上面的基础之上,进一步的衍生和拓展,例如我们想要绘制一张水平方向的条形图,X轴和Y轴的数据互换,代码如下

chart = alt.Chart(df).mark_bar().encode(x="profit(B):Q", y="brand:N")
chart.save("chart1.html")

output

同时我们也来尝试绘制一张折线图,调用的是mark_line()方法代码如下

## 创建一组新的数据,以日期为行索引值
np.random.seed(29)
value = np.random.randn(365)
data = np.cumsum(value)
date = pd.date_range(start="20220101", end="20221231")
df = pd.DataFrame({"num": data}, index=date)

line_chart = alt.Chart(df.reset_index()).mark_line().encode(x="index:T", y="num:Q")
line_chart.save("chart2.html")

output

我们还可以来绘制一张甘特图,通常在项目管理上面用到的比较多,X轴添加的是时间日期,而Y轴上表示的则是项目的进展,代码如下

project = [{"project": "Proj1", "start_time": "2022-01-16", "end_time": "2022-03-20"},
 {"project": "Proj2", "start_time": "2022-04-12", "end_time": "2022-11-20"},
 ......
 ]

df = alt.Data(values=project)
chart = alt.Chart(df).mark_bar().encode(
    alt.X("start_time:T",
          axis=alt.Axis(format="%x",
                        formatType="time",
                        tickCount=3),
          scale=alt.Scale(domain=[alt.DateTime(year=2022, month=1, date=1),
                                  alt.DateTime(year=2022, month=12, date=1)])),
    alt.X2("end_time:T"),
    alt.Y("project:N", axis=alt.Axis(labelAlign="left",
                                     labelFontSize=15,
                                     labelOffset=0,
                                     labelPadding=50)),
    color=alt.Color("project:N", legend=alt.Legend(labelFontSize=12,
                                                   symbolOpacity=0.7,
                                                   titleFontSize=15)))

chart.save("chart_gantt.html")

output

从上图中我们看到团队当中正在做的几个项目,每个项目的进展程度不同,当然了,不同项目的时间跨度也不尽相同,表现在图表上面的话就显得十分的直观了。

紧接着,我们再来绘制散点图,调用的是mark_circle()方法,代码如下

df = data.cars()

## 筛选出地区是“USA”也就是美国的乘用车数据
df_1 = alt.Chart(df).transform_filter(
    alt.datum.Origin == "USA"
)

df = data.cars()

df_1 = alt.Chart(df).transform_filter(
    alt.datum.Origin == "USA"
)

chart = df_1.mark_circle().encode(
    alt.X("Horsepower:Q"),
    alt.Y("Miles_per_Gallon:Q")
)

chart.save("chart_dots.html")

output

当然我们可以将其进一步的优化,让图表显得更加美观一些,添加一些颜色上去,代码如下

chart = df_1.mark_circle(color=alt.RadialGradient("radial",[alt.GradientStop("white", 0.0),
                                                 alt.GradientStop("red", 1.0)]),
              size=160).encode(
    alt.X("Horsepower:Q", scale=alt.Scale(zero=False,padding=20)),
    alt.Y("Miles_per_Gallon:Q", scale=alt.Scale(zero=False,padding=20))
)

output

我们更改散点的大小,不同散点的大小代表着不同的值,代码如下

chart = df_1.mark_circle(color=alt.RadialGradient("radial",[alt.GradientStop("white", 0.0),
                                                 alt.GradientStop("red", 1.0)]),
              size=160).encode(
    alt.X("Horsepower:Q", scale=alt.Scale(zero=False, padding=20)),
    alt.Y("Miles_per_Gallon:Q", scale=alt.Scale(zero=False, padding=20)),
    size="Acceleration:Q"
)

output

以上就是Python可视化模块altair的使用详解的详细内容,更多关于Python可视化模块altair的资料请关注我们其它相关文章!

(0)

相关推荐

  • Python Tkinter模块 GUI 可视化实例

    我就废话不多说了,直接上代码: coding:utf-8 #自带的Tkinter模块 from Tkinter import * from ScrolledText import ScrolledText #gui框 root = Tk() root.title('视频多线程') #窗口坐标和大小 +代表调整坐标 x代表调整大小 root.geometry('500x500+200+100') #滚动条 text = ScrolledText(root,font=('微软雅黑',10)) #实现

  • Python中的数据可视化matplotlib与绘图库模块

    目录 一.条形图bar() 二.直方图 三.折线图 四.散点图+直线图 五.饼图 六.箱型图 七.plot函数参数 八.图像标注参数 九.Matplolib应用 matplotlib官方文档:https://matplotlib.org/stable/users/index.html matplotlib是一个绘图库,它可以创建常用的统计图,包括条形图.箱型图.折线图.散点图.饼图和直方图. 一.条形图bar() import matplotlib.pyplot as plt from matp

  • wxPython绘图模块wxPyPlot实现数据可视化

    本文实例为大家分享了wxPython绘图模块wxPyPlot实现数据可视化的具体代码,供大家参考,具体内容如下 #-*- coding: utf-8 -*- ################################################################################ ## 使用wxPython的绘图模块wxPyPlot,需要数据可视化的时候,无需再借用其他的库或模块了 ######################################

  • python中altair可视化库实例用法

    作为六大python可视化库,基本上学会都是可以通吃任何领域的存在,本章要给大家介绍的Altair就是其中之一的可视化库,能够将数据转化为非常直观的图片,让我们更加清晰的认知数据之前直观的联系,俨然已经成为可视化库中的新星,好啦,下面就让我们详细了解下这个荣获众多粉丝的可视化库的使用技巧吧. 安装Altair: 依赖JupyterLab $ pip install -U altair vega_datasets jupyterlab 导入Altair: import altair as alt

  • Python 可视化matplotlib模块基础知识

    目录 1. matplotlib 模块概述 2. matplotlib.pyplot 相关方法 3. matplotlib.pyplot 图表展示 前言: 互联网时代下,在网络中每天都会产生很多数据,通过对数据分析之后,如何更好的诠释数据背后的意义,我们需要对数据进行可视化展示. 在数据可视化中,Python 也支持第三模块 matplotlib 模块:Python使用最多的可视化库 seaborn 模块:基于matplotlib的图形可视化 pycharts 模块:用于生成Echarts 图表

  • Python可视化模块altair的使用详解

    目录 Altair是啥 Altair初体验 图表的保存 Altair之进阶操作 今天小编来和大家聊一下Python当中的altair可视化模块,并且通过调用该模块来绘制一些常见的图表,借助Altair,我们可以将更多的精力和时间放在理解数据本身以及数据的意义上面,从复杂的数据可视化过程中解脱出来. Altair是啥 Altair被称为是统计可视化库,因为它可以通过分类汇总.数据变换.数据交互.图形复合等方式全面地认识数据.理解和分析数据,并且其安装的过程也是十分的简单,直接通过pip命令来执行,

  • Python可视化绘制图表的教程详解

    目录 1.Matplotlib 程序包 2.绘图命令的基本架构及其属性设置 3.Seaborn 模块介绍 3.1 未加Seaborn 模块的效果 4.描述性统计图形概览 4.1制作数据 4.2 频数分析 python 有许多可视化工具,但本书只介绍Matplotlib.Matplotlib是一种2D的绘图库,它可以支持硬拷贝和跨系统的交互,它可以在python脚本,IPython的交互环境下.Web应用程序中使用.该项目是由John Hunter 于2002年启动,其目的是为python构建MA

  • python中模块的__all__属性详解

    python模块中的__all__属性,可用于模块导入时限制,如: from module import * 此时被导入模块若定义了__all__属性,则只有__all__内指定的属性.方法.类可被导入. 若没定义,则导入模块内的所有公有属性,方法和类 # kk.py class A(): def __init__(self,name,age): self.name=name self.age=age class B(): def __init__(self,name,id): self.nam

  • Python 常用模块 re 使用方法详解

    一.re模块的查找方法: 1.findall   匹配所有每一项都是列表中的一个元素 import re ret = re.findall('\d+','asd鲁班七号21313') # 正则表达式,待匹配的字符串,flag # ret = re.findall('\d','asd鲁班七号21313') # 正则表达式,待匹配的字符串,flag # print(ret) 2.search 只匹配从左到右的第一个,等到的不是直接的结果,而是一个变量,通过这个变量的group方法来获取结果 impo

  • python re模块的高级用法详解

    总结 以上所述是小编给大家介绍的python re模块的高级用法详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的.在此也非常感谢大家对我们网站的支持!

  • Python可视化Matplotlib散点图scatter()用法详解

    散点图是数据分析中非常常用的图形.用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间是否存在某种关联或总结坐标点的分布模式. 特点:判断变量之间是否存在数量关联趋势,展示离群点(分布规律) Matplotlib 中绘制散点图的函数为 scatter() ,使用语法如下: matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha

  • Python Pyperclip模块安装和使用详解

    目录 Pyperclip模块详解 一. Pyperclip模块安装 二.Pyperclip功能介绍 1.复制粘贴 补充:pyperclip模块安装和使用 一.pyperclip模块简介 二.pyperclip安装 三.pyperclip模块中函数使用 四.项目举例(摘自python编程快速上手-让繁琐工作自动化) Pyperclip模块详解 一. Pyperclip模块安装 Pyperclip模块兼容python2和python3,能跨平台使用. 安装指令如下,在Anaconda的终端执行如下指

  • python MysqlDb模块安装及其使用详解

    python调用mysql数据库通常通过mysqldb模块,简单说下如何调用 1.安装驱动 目前有两个MySQL的驱动,我们可以选择其中一个进行安装: 1. MySQL-python:是封装了MySQL C驱动的Python驱动: 2.mysql-connector-python:是MySQL官方的纯Python驱动. 这里使用MySQL-python驱动,即MySQLdb模块. 命令行安装 pip install python-mysql 或者在pycharm包中安装 源码安装方式 访问: h

  • python随机模块random使用方法详解

    random随机模块包括返回随机数的函数,可以用于模拟或者任何产生随机输出的程序. 一.random模块常用函数介绍 random.random() - 生成一个从0.0(包含)到 1.0(不包含)之间的随机浮点数: random.uniform(a, b) - 生成一个范围为 a≤N≤b 的随机数,随机数类型是浮点数: random.randint(a, b) - 生成一个范围为 a≤N≤b 的随机数,随机数的类型是整形,注意与random.uniform(a, b)区别: random.ra

  • Python Selenium模块安装使用教程详解

    一.概述: Selenium是一个用于Web应用程序测试的工具,本文使用的是Selenium 2.Selenium就是一套类库,不依赖于任何测试框架,除了必要的浏览器驱动,不需要启动其他进程或安装其他程序,也不必像 Selenium 1那样需要先启动服务. 1 支持浏览器 Firefox (FirefoxDriver) IE(InternetExplorerDriver) Opera(OperaDriver) Chrome (ChromeDriver) safari(SafariDriver)

随机推荐