(二十一)Seaborn知识学习8-python数据分析与机器学习实战(学习笔记)

文章原创,最近更新:2018-05-17
课程来源: python数据分析与机器学习实战-唐宇迪

引言:介绍seaborn热度图绘制
学习参考链接:
1、Seaborn官方0.8.1版本

首先介绍以下热度图的作用,拿出离散群数据,离散群数据可能会发生波动变化.看一下哪个点的值比较高,看一下哪个点的值比较低?通过值的变化,用颜色表现出来,这个是我们要做的一件事.

热度图是由不同的颜色构成的,这个颜色由可能是由浅入深,有可能是有深入浅.这里颜色是0.5-0.9之间,好比今天的股票涨幅的情况,涨幅比较低的情况下用0.5来表示,涨幅比较高,可以用0.8表示.

用热度图颜色的差异很方便的看出,那个点的值是偏高还是偏低?我们通过一个小例子来了解一下热度图:

案例代码如下:

import seaborn as sns
import numpy as np

np.random.seed(0)
sns.set()

uniform_data=np.random.rand(3,3)
print(uniform_data)
heatmap=sns.heatmap(uniform_data)

输出结果如下:

[[ 0.5488135   0.71518937  0.60276338]
 [ 0.54488318  0.4236548   0.64589411]
 [ 0.43758721  0.891773    0.96366276]]

从输出的结果可以看出,右边有个类似与调色板的东西,取值范围是0.5-0.8.比如0.5488135这个值,就会在调色板里面的颜色范围取值,这个取值偏紫色,就会画出紫色的颜色.

可以通过颜色的差异,知道什么样的值偏高,什么样的值偏低?比如这里,颜色偏黑的,值比较小,颜色偏白的,值比较大.

那么想设置调色板取值区间的设置,又应该怎么样设置呢?

在heatmap函数()增加vmin最小的取值以及vmax最大的取值属性的设置.

案例代码如下:

import seaborn as sns
import numpy as np

np.random.seed(0)
sns.set()
uniform_data=np.random.rand(3,3)
print(uniform_data)
heatmap=sns.heatmap(uniform_data,vmin=0.2,vmax=0.8)

输出结果如下:

[[ 0.5488135   0.71518937  0.60276338]
 [ 0.54488318  0.4236548   0.64589411]
 [ 0.43758721  0.891773    0.96366276]]

从输出的结果可以看出,数据没变,但是数据相对应的颜色变了,没改变颜色数值之前0.891773对应的颜色是橙色,改变颜色数值之后0.891773对应的颜色是偏奶白色,因为只要是数字大于0.75都是奶白色的区间.

比如拿到一组数据是权重参数,这个参数可能有正值,也有负值,比如一个股票,正值代表升了,负值代表跌了.,怎么设置调色板的中间值为0?

在heatmap函数()增加center=0属性的设置.

案例代码如下:

import seaborn as sns
import numpy as np

np.random.seed(3)
sns.set()
uniform_data=np.random.randn(3,3)
print(uniform_data)
heatmap=sns.heatmap(uniform_data,center=0)

输出结果如下:

[[ 1.78862847  0.43650985  0.09649747]
 [-1.8634927  -0.2773882  -0.35475898]
 [-0.08274148 -0.62700068 -0.04381817]]

从输出的结果可以看出,中心值0以上的颜色与中心值以下的颜色都是不一样的,而且差异非常大.

在seanborn库有自带的一个数据集叫"flights",我们先看看这个数据集前5行是什么样的?

案例代码如下:

import seaborn as sns
flights=sns.load_dataset("flights")
print(flights.head())

输出结果如下:

   year     month  passengers
0  1949   January         112
1  1949  February         118
2  1949     March         132
3  1949     April         129
4  1949       May         121

从输出结果可以看出,("flights"数据集记录的是航班每一年每个月份的乘客数量.比如1949年1月份,乘客有112名.

如何从"flights"数据集中表达横轴年份与纵轴月份之间的乘客关系?并由不同的颜色表示?

首先我们先查看用pivot()函数画出的以x轴以"month", y轴以"year",坐标上的点 "passengers".

案例代码如下:

import seaborn as sns
flights=sns.load_dataset("flights")
flights = flights.pivot("month", "year", "passengers")
ax=sns.heatmap(flights)

输出结果如下:



颜色的调色板的取值范围,在未设定的情况下是根据数据的最大值以及最小值进行自动调整的.从1949年到1960年乘客的数量由偏黑色转向到偏淡橘色.也由此说明了人数由少慢慢开始偏多.

能否将每年每月份相对应的乘客画到对应的图中呢?

需要在headmap()函数增加annot=True的属性就可以将对应的人数显示出来,增加fmt="d",就是将字体的颜色设置为d.

具体案例代码如下:

import seaborn as sns
flights=sns.load_dataset("flights")
flights = flights.pivot("month", "year", "passengers")
ax=sns.heatmap(flights,annot=True,fmt="d")

输出结果如下:

怎么设置每个数据绘制的对应颜色有间距呢?

headmap()函数增加linewidths=.5,即可设置间距的大小

案例代码如下:

import seaborn as sns
flights=sns.load_dataset("flights")
flights = flights.pivot("month", "year", "passengers")
ax=sns.heatmap(flights,linewidths=.5)

输出结果如下:



有间距可以看差距可以更加明显一点.推荐增加.

怎么指定调色板?

headmap()函数增加cmap="YlGnBu",即可设置调色板的颜色.

案例代码如下:

import seaborn as sns
flights=sns.load_dataset("flights")
flights = flights.pivot("month", "year", "passengers")
ax=sns.heatmap(flights,cmap="YlGnBu")

输出结果如下:


怎么隐藏绘图右边的调色板

headmap()函数增加cbar=False,即可以隐藏.

案例代码如下:

import seaborn as sns
flights=sns.load_dataset("flights")
flights = flights.pivot("month", "year", "passengers")
ax=sns.heatmap(flights,cbar=False)

输出结果如下:



最好还是把调色板显示出来哦.

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,776评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,527评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,361评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,430评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,511评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,544评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,561评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,315评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,763评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,070评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,235评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,911评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,554评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,173评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,424评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,106评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,103评论 2 352

推荐阅读更多精彩内容