广告
返回顶部
首页 > 资讯 > 后端开发 > Python >如何使用python数据可视化Seaborn画热力图
  • 280
分享到

如何使用python数据可视化Seaborn画热力图

2023-06-22 07:06:34 280人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要为大家展示了“如何使用python数据可视化Seaborn画热力图”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用Python数据可视化Seaborn画热力图”这篇文章吧。1.

这篇文章主要为大家展示了“如何使用python数据可视化Seaborn画热力图”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用Python数据可视化Seaborn画热力图”这篇文章吧。

1.引言

热力图的想法很简单,用颜色替换数字。

如何使用python数据可视化Seaborn画热力图

现在,这种可视化风格已经从最初的颜色编码表格走了很长一段路。热力图被广泛用于地理空间数据。这种图通常用于描述变量的密度或强度,模式可视化、方差甚至异常可视化等。

鉴于热力图有如此多的应用,本文将介绍如何使用Seaborn 来创建热力图。

2. 栗子

首先我们导入pandasNumpy库,这两个库可以帮助我们进行数据预处理。

import pandas as pdimport matplotlib.pyplot as pltimport seaborn as sbimport numpy as np

为了举例,我们采用的数据集是 80 种不同谷物的样本,我们来看看它们的成分。

数据集样例如下所示:

  • 如何使用python数据可视化Seaborn画热力图

上图中,第一行为表头,接着对于每一行来说,第一列为谷物的名称,后面第4列到16列为每种谷物含有的13种主要组成成分的数值。

3. 数据预处理

解下来我们分析每种谷物13种不同成分之间的相关性,我们可以采用Pandas库中的coor()函数来计算相关性,

代码如下:

# read datasetdf = pd.read_csv('data/cereal.csv')# get correlationsdf_corr = df.corr()  # 13X13print(df_corr)

得到结果如下:

          calories   protein       fat  ...    weight      cups    rating
calories  1.000000  0.019066  0.498610  ...  0.696091  0.087200 -0.689376
protein   0.019066  1.000000  0.208431  ...  0.216158 -0.244469  0.470618
fat       0.498610  0.208431  1.000000  ...  0.214625 -0.175892 -0.409284
sodium    0.300649 -0.054674 -0.005407  ...  0.308576  0.119665 -0.401295
fiber    -0.293413  0.500330  0.016719  ...  0.247226 -0.513061  0.584160
carbo     0.250681 -0.130864 -0.318043  ...  0.135136  0.363932  0.052055
sugars    0.562340 -0.329142  0.270819  ...  0.450648 -0.032358 -0.759675
potass   -0.066609  0.549407  0.193279  ...  0.416303 -0.495195  0.380165
vitamins  0.265356  0.007335 -0.031156  ...  0.320324  0.128405 -0.240544
shelf     0.097234  0.133865  0.263691  ...  0.190762 -0.335269  0.025159
weight    0.696091  0.216158  0.214625  ...  1.000000 -0.199583 -0.298124
cups      0.087200 -0.244469 -0.175892  ... -0.199583  1.000000 -0.203160
rating   -0.689376  0.470618 -0.409284  ... -0.298124 -0.203160  1.000000

[13 rows x 13 columns]

接着我们移除相关性不大的最后几个成分,代码如下:

# irrelevant fieldsfields = ['rating', 'shelf', 'cups', 'weight']# drop rowsdf_corr.drop(fields, inplace=True) # 9X13# drop colsdf_corr.drop(fields, axis=1, inplace=True) # 9X9print(df_corr)

得到结果如下:

如何使用python数据可视化Seaborn画热力图

我们知道相关性矩阵是对称矩阵,矩阵中上三角和下三角的值是相同的,这带来了很大的重复。

4. 画热力图

非常幸运的是我们可以使用Mask矩阵来生成Seaborn中的热力图,那么我们首先来生成Mask矩阵。

np.ones_like(df_corr, dtype=np.bool)

结果如下:

接着我们来得到上三角矩阵,在Numpy中使用np.triu函数可以返回上三角矩阵对应的Mask,

如下所示:

mask = np.triu(np.ones_like(df_corr, dtype=np.bool))

结果如下:

如何使用python数据可视化Seaborn画热力图

接下来我们画热力图,如下所示:

sb.heatmap(df_corr,mask=mask)plt.show()

此时的运行结果如下:

如何使用python数据可视化Seaborn画热力图

5. 添加数值

观察上图,我们虽然使用Mask生成了热力图,但是图像中还有两个空的单元格(红色圆圈所示)。

我们当然可以在绘制的时候将其进行过滤。即分别将和上述圆圈对应的maskdf_corr过滤掉,

代码如下:

# adjust mask and dfmask = mask[1:, :-1]corr = df_corr.iloc[1:, :-1].copy()

同时我们可以设置heatmap相应的参数,让其显示对应的数值,

完整代码如下:

def test2():    # read dataset    df = pd.read_csv('data/cereal.csv')    # get correlations    df_corr = df.corr()  # 13X13    # irrelevant fields    fields = ['rating', 'shelf', 'cups', 'weight']    df_corr.drop(fields, inplace=True)  # 9X13    # drop cols    df_corr.drop(fields, axis=1, inplace=True)  # 9X9    mask = np.triu(np.ones_like(df_corr, dtype=np.bool))    # adjust mask and df    mask = mask[1:, :-1]    corr = df_corr.iloc[1:, :-1].copy()    # plot heatmap    sb.heatmap(corr, mask=mask, annot=True, fmt=".2f", cmap='Blues',               vmin=-1, vmax=1, cbar_kws={"shrink": .8})    # yticks    plt.yticks(rotation=0)    plt.show()

运行结果如下:

如何使用python数据可视化Seaborn画热力图

6. 调色板优化

接着我们继续优化可视化的效果,考虑到相关系数的范围为-1到1,所以颜色变化有两个方向。基于此,由中间向两侧发散的调色板相比连续的调色板视觉效果会更好。如下所示为发散的调色板示例:

如何使用python数据可视化Seaborn画热力图

在Seaborn库中存在生成发散调色板的函数 driverging_palette,该函数用于构建colORMaps,每侧使用一种颜色,并在中心汇聚成另一种颜色。

这个函数的完整形式如下:

diverging_palette(h_neg, h_pos, s=75, l=50, sep=1,n=6, center=“light”, as_cmap=False)

该函数使用颜色表示形式为HUSL,即hue,SaturationLightness。这里我们查阅网站来选择我们接下来设置的调色板的颜色。

最后但是最最重要的一点,不要忘了在我们的图像上设置标题,使用title函数即可。

完整代码如下:

def test3():    # read dataset    df = pd.read_csv('data/cereal.csv')    # get correlations    df_corr = df.corr()  # 13X13    # irrelevant fields    fields = ['rating', 'shelf', 'cups', 'weight']    df_corr.drop(fields, inplace=True)  # 9X13    # drop cols    df_corr.drop(fields, axis=1, inplace=True)  # 9X9    fig, ax = plt.subplots(figsize=(12, 10))    # mask    mask = np.triu(np.ones_like(df_corr, dtype=np.bool))    # adjust mask and df    mask = mask[1:, :-1]    corr = df_corr.iloc[1:, :-1].copy()    # color map    cmap = sb.diverging_palette(0, 230, 90, 60, as_cmap=True)    # plot heatmap    sb.heatmap(corr, mask=mask, annot=True, fmt=".2f",               linewidths=5, cmap=cmap, vmin=-1, vmax=1,               cbar_kws={"shrink": .8}, square=True)    # ticks    yticks = [i.upper() for i in corr.index]    xticks = [i.upper() for i in corr.columns]    plt.yticks(plt.yticks()[0], labels=yticks, rotation=0)    plt.xticks(plt.xticks()[0], labels=xticks)    # title    title = 'CORRELATION MATRIX\nSAMPLED CEREALS COMPOSITION\n'    plt.title(title, loc='left', fontsize=18)    plt.show()

运行结果如下:

如何使用python数据可视化Seaborn画热力图

是不是看上去高大上了很多。人类果然还是视觉动物。

以上是“如何使用python数据可视化Seaborn画热力图”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网Python频道!

--结束END--

本文标题: 如何使用python数据可视化Seaborn画热力图

本文链接: https://www.lsjlt.com/news/303338.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python数据可视化Seaborn画热力图
    目录1.引言2. 栗子3. 数据预处理4. 画热力图5. 添加数值6. 调色板优化1.引言 热力图的想法很简单,用颜色替换数字。 现在,这种可视化风格已经从最初的颜色编码表格走了很...
    99+
    2022-11-12
  • 如何使用python数据可视化Seaborn画热力图
    这篇文章主要为大家展示了“如何使用python数据可视化Seaborn画热力图”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用python数据可视化Seaborn画热力图”这篇文章吧。1....
    99+
    2023-06-22
  • Python数据可视化Pyecharts制作Heatmap热力图
    目录HeatMap:热力图1.基本设置2.热力图数据项Demo 举例1.基础热力图本文介绍基于 Python3 的 Pyecharts 制作&...
    99+
    2022-11-13
  • 如何使用python数据可视化Seaborn绘制山脊图
    这篇文章主要介绍如何使用python数据可视化Seaborn绘制山脊图,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. 引言山脊图一般由垂直堆叠的折线图组成,这些折线图中的折线区域间彼此重叠,此外它们还共享相同的x...
    99+
    2023-06-22
  • Python数据可视化之Seaborn怎么使用
    这篇文章主要介绍了Python数据可视化之Seaborn怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python数据可视化之Seaborn怎么使用文章都会有所收获,下面我们一起来看看吧。1. 安装 s...
    99+
    2023-06-30
  • Python数据可视化之Seaborn的使用详解
    目录1. 安装 seaborn2.准备数据3.背景与边框3.1 设置背景风格3.2 其他3.3 边框控制4. 绘制 散点图5. 绘制 折线图5.1 使用 replot()方法5.2 ...
    99+
    2022-11-10
  • Python中seaborn库之countplot的数据可视化使用
    在Python数据可视化中,seaborn较好的提供了图形的一些可视化功效。 seaborn官方文档见链接:http://seaborn.pydata.org/api.html countplot是seaborn库中...
    99+
    2022-06-02
    Python seaborn countplot
  • Python中seaborn库之countplot数据可视化的使用方法
    这篇文章给大家分享的是有关Python中seaborn库之countplot数据可视化的使用方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在Python数据可视化中,seaborn较好的提供了图形的一些可视化...
    99+
    2023-06-15
  • 如何用Python画中国地图实现各省份数据可视化
    这期内容当中小编将会给大家带来有关如何用Python画中国地图实现各省份数据可视化,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。第一步:安装pyechartspyecharts是一款将python与ech...
    99+
    2023-06-16
  • python如何使用PCA可视化数据
    本篇内容主要讲解“python如何使用PCA可视化数据”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python如何使用PCA可视化数据”吧!什么是PCA我们先复习一下这个理论。如果你想确切了解...
    99+
    2023-06-19
  • 如何使用Python进行数据可视化
    这篇“如何使用Python进行数据可视化”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何使用Python进行数据可视化”文...
    99+
    2023-07-05
  • Python数据可视化之Pyecharts如何使用
    这篇“Python数据可视化之Pyecharts如何使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python数据可视化...
    99+
    2023-07-06
  • Python数据可视化之使用matplotlib绘制简单图表
    目录一、绘制折线图二、绘制柱形图或堆积图形三、绘制条形图或堆积条形图 四、绘制堆积面积图五、绘制直方图六、绘制饼图或者圆环图 七、绘制散点图或气泡图八、绘制箱形图...
    99+
    2022-11-13
  • Python数据可视化实践之使用Matplotlib绘制图表
    目录一. Matplotlib 简介二. 安装与导入三. 基本绘图操作1. 折线图2. 柱状图3. 饼图四. 图表定制五. 多图展示六. 总结一. Matplotlib 简介 Mat...
    99+
    2023-05-18
    Python Matplotlib绘制图表 Python Matplotlib
  • 【100天精通Python】Day61:Python 数据分析_Pandas可视化功能:绘制饼图,箱线图,散点图,散点图矩阵,热力图,面积图等(示例+代码)
    目录 1 Pandas 可视化功能 2 Pandas绘图实例 2.1 绘制线图 2.2 绘制柱状图 2.3 绘制随机散点图 2.4 绘制饼图 2.5 绘制箱线图A 2.6 绘制箱线图B 2.7 绘制散点图矩阵  2.8 绘制面积图 2.9 ...
    99+
    2023-09-17
    python 开发语言
  • 如何在Python中使用Numpy进行数据可视化?
    Numpy是Python中一个非常流行的科学计算库,它提供了高效的多维数组操作以及各种数学函数。在数据分析和可视化方面,Numpy也是一个非常强大的工具。本文将介绍如何使用Numpy进行数据可视化。 一、安装Numpy 在使用Numpy之...
    99+
    2023-08-11
    日志 numy load
  • [数据分析与可视化] Python绘制数据地图3-GeoPandas使用要点
    本文主要介绍GeoPandas的使用要点。GeoPandas是一个Python开源项目,旨在提供丰富而简单的地理空间数据处理接口。GeoPandas扩展了Pandas的数据类型,并使用matplotl...
    99+
    2023-09-23
    python 数据分析 开发语言
  • 如何使用 numpy 进行数据可视化?
    数据可视化是数据分析中的重要环节,它帮助我们更好地理解数据、发现数据中的规律、趋势和异常。在 Python 中,有很多优秀的数据可视化工具,如 Matplotlib 和 Seaborn 等。但在使用这些工具之前,我们需要先了解 NumPy...
    99+
    2023-10-01
    文件 numpy javascript
  • Python如何读取CSV文件并进行数据可视化绘图
    这篇文章主要讲解了“Python如何读取CSV文件并进行数据可视化绘图”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python如何读取CSV文件并进行数据可视化绘图”吧!介绍:文件&nbs...
    99+
    2023-07-02
  • 如何使用R语言实现数据可视化绘图bar chart条形图
    这篇文章主要为大家展示了“如何使用R语言实现数据可视化绘图bar chart条形图”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用R语言实现数据可视化绘图bar cha...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作