作者 | Soner Yıldırım

编译 | VK
来源 | Towards Data Science

数据可视化是数据科学的重要组成部分。它对于探索和理解数据非常有用。在某些情况下,可视化在传递信息方面也比普通数字好得多。

使用数据可视化技术可以很容易地发现变量之间的关系、变量的分布以及数据中的底层结构。

在本文中,我们将介绍数据分析中常用的5种基本数据可视化类型。我们将使用Altair库,它是Python的统计可视化库。

如果你喜欢其中一个用于数据可视化任务的库的话,我以前曾用Seaborn和ggplot2写过类似的文章。我建议你仔细检查一下,因为在同一个任务上比较不同的工具和框架会帮助你学得更好。

让我们首先创建一个用于示例的示例数据帧。

import numpy as np
import pandas as pddf = pd.DataFrame({'date':pd.date_range(start='2020-01-10', periods=100, freq='D'),'cat':pd.Series(['A','B','C']).sample(n=100, replace=True),'val':(np.random.randn(100) + 10).round(2),'val2':(np.random.random(100) * 10).round(2),'val3':np.random.randint(20,50, size=100)
})df = df.reset_index(drop=True)df.head()

数据帧由100行和5列组成。它包含datetime、categorical和numerical值。

1.折线图

折线图显示了两个变量之间的关系。其中之一通常是时间。因此,我们可以看到变量是如何随时间变化的,例如股票价格,每日温度。

下面是如何用Altair创建一个简单的折线图。

import altair as altalt.Chart(df).mark_line().encode(x='date', y='val'
)

让我们详细说明一下语法。我们首先将数据传递给图表对象。下一个函数指定绘图类型。encode函数指定绘图中使用的列。因此,在encode函数中写入的任何内容都必须链接到数据帧。

Altair提供了更多的函数和参数来生成更多信息或定制的绘图。我们将在下面的例子中看到它们。

为了使上面的折线图看起来更好,我们可以使用“scale”特性调整y轴的值范围。

alt.Chart(df).mark_line().encode(alt.X('date'),alt.Y('val', scale=alt.Scale(zero=False))
)

为了使用scale属性,我们使用X和Y编码(例如alt.X)指定列名。zero参数设置为“False”,以防止轴从零开始。

2.散点图

散点图也是一种关系图。它通常用于显示两个数值变量的值。我们可以观察它们之间是否有关联。

我们可以创建“val”和“val2”列的散点图,如下所示。

alt.Chart(df).mark_circle(size=40).encode(alt.X('val', scale=alt.Scale(zero=False)),alt.Y('val2'),alt.Color('cat')
)

我们已经使用颜色编码来根据“cat”列分离数据点。mark_circle函数的size参数用于调整散点图中点的大小。

3.直方图

直方图用于显示连续变量的分布。它将取值范围划分为离散的数据元,并统计每个数据元中的数据点个数。

让我们创建“val3”列的直方图。

alt.Chart(df).mark_bar().encode(alt.X('val3', bin=True),alt.Y('count()')
).properties(title='Histogram of val3', height=300, width=450)

我们还使用properties函数自定义大小并添加标题。

4.箱线图

箱线图提供了变量分布的概述。它显示了值是如何通过四分位数和离群值展开的。

我们可以使用Altair的mark_boxplot函数创建一个箱线图,如下所示。

alt.Chart(df).mark_boxplot().encode(alt.X('cat'),alt.Y('val2', scale=alt.Scale(zero=False))
).properties(height=200, width=400)

A中的值范围小于其他两个类别。框内的白线表示中值。

5.条形图

条形图可用于可视化离散变量。每个类别都用一个大小与该类别的值成比例的条表示。

例如,我们可以使用条形图来可视化按week分组的“val3”列。我们先用pandas库计算。

df['week'] = df['date'].dt.isocalendar().weekweekly = df[['week','val3']].groupby('week', as_index=False).sum()weekly.head()

第一行从date列中提取周。第二行将“val3”列按周分组并计算总和。

我们现在可以创建条形图。

alt.Chart(weekly).mark_bar().encode(x='val3:Q', y='week:O'
)

结论

我们已经介绍了5种基本但功能非常强大的可视化类型。它们都是探索数据集和揭示变量之间关系的基础。

使用Altair可以创建更复杂、信息更丰富、自定义的可视化效果。它在数据转换和过滤方面也非常高效和强大。


往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑温州大学《机器学习课程》视频
本站qq群851320808,加入微信群请扫码:

【Python】5种基本但功能非常强大的可视化类型相关推荐

  1. VS Code 的 python 扩展发布,绘图功能更强大

    Visual Studio Code 的 python扩展已发布,可以从 Marketplace 下载Python扩展,或直接从 Visual Studio Code 中的扩展库安装.如果已经安装了P ...

  2. c 调用python clion_CLion 2018.1.3 功能超级强大的跨平台 C 开发工具

    CLion是一款专为开发C及C++所设计的跨平台IDE.它是以IntelliJ为基础设计的,包含了许多智能功能来提高开发人员的生产力.Clion 2018是一款用于C和C++的跨平台IDE,该软件支持 ...

  3. python可以实现哪些功能_Python学习究竟有多强大,Python代码能实现哪些功能

    Python究竟有多强大?Python代码能实现哪些功能?众所周知,Python入门简单.功能强大,是人工智能时代最佳的编程语言.但很多人好奇Python究竟有多强大,为什么那么受欢迎?下面就来给大家 ...

  4. Python语言学习:基于python五种方法实现使用某函数名【func_01】的字符串格式('func_01')来调用该函数【func_01】执行功能

    Python语言学习:基于python五种方法实现使用某函数名[func_01]的字符串格式('func_01')来调用该函数[func_01]执行功能 目录 问题提出 代码五种设计思路 T1方法:e ...

  5. python如何实现选项功能_python几种常用功能如何实现 python几种常用功能实现代码实例...

    本篇文章小编给大家分享一下python几种常用功能实现代码实例,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 1.python 程序退出的几种方式 import sys s ...

  6. excel中vlookup函数的使用方法_vlookup函数功能非常强大,那在Python中如何实现?

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于艾然飞翔,作者宁晨 前言 在exce中vlookup函数功能非常强大 ...

  7. python有vlookup的功能么,vlookup函数功能非常强大,那在Python中如何实现?

    vlookup函数功能非常强大,那在Python中如何实现? vlookup函数功能非常强大,那在Python中如何实现? 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原 ...

  8. vlookup函数功能非常强大,那在Python中如何实现?

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于艾然飞翔,作者宁晨 前言 在exce中vlookup函数功能非常强大 ...

  9. 新手必看:Python 3.8六大新功能

    2020-01-30 12:10:38 全文共2372字,预计学习时长7分钟 来源:Pexels IT业日新月异,落后的Python 2将在2020年逐渐被淘汰. 2019年,随着数据科学的兴起,Py ...

最新文章

  1. 复习01统计学习方法(机器学习中的重要概念)---图片版
  2. 语音变音调和加速减速
  3. 广西师范大学计算机调剂难吗,2014年广西师范大学考研调剂过来人给的建议
  4. 嵌入式开发C语言中的uint8_t
  5. python知识点总结
  6. Vxscan:一款实用综合扫描工具
  7. 聚类分析 距离 matlab,用MATLAB做聚类分析
  8. MLK-12Q-DC48多路直流电能表说明书
  9. 单片机异常分析方法简介
  10. 虚拟仿真实验教学计算机网络,虚拟仿真实验教学及实验中心建设
  11. uml图中实线箭头和虚线箭头的区别
  12. 神秘诡异的量子世界是如何毁掉科学家三观的?
  13. 29HTML5期末大作业:在线电影网站设计——电影从你的全世界路过(4页) HTML+CSS+JavaScript 大学生电影网页制作教程 学生HTML电影网页设计作业成品网页制作代码 学生影视
  14. 功能测试数据测试之错误推测方法
  15. ireport怎么实现总计和小计?
  16. Android项目开发:指南针(两种方法实现)
  17. 用友U8的SQL SERVER 数据库结构说明表
  18. 1.关于tomcat的startup.bat文件闪退,而日志文件没有任何信息
  19. 量化选股策略搭建(一)(股票数据获取)
  20. RSI的交易系统以及用rsi指标进行探势

热门文章

  1. 使用CRM的List WebPart
  2. Linux更改终端的用户名和主机名的颜色
  3. 构造方法,this,super关键字
  4. log4j2分层输出日志
  5. 进击的docker 二 : docker 快速入门
  6. jquery validation remote进行唯一性验证时只使用自定义参数,不使用默认参数
  7. 在往sql server 插入数据时 报此错误“ 消息 8152,级别 16,状态 14,第 1 行 将截断字符串或二进制数据。”...
  8. 深入理解JavaScript系列(5):强大的原型和原型链
  9. SAP收购sysbase
  10. 实时获取ccd图像_四元数数控:CCD视觉检测定位系统在玻璃瓶缺陷的检测