用python-pandas作图矩阵

注:本文为一篇翻译文章,来自于
Visualize Machine Learning Data in Python With Pandas - Machine Learning Mastery**,原文标题是Visualize Machine Learning Data in Python With Pandas(在Python里使用pandas对机器学习的数据进行可视化分析),作者的意思是我们在采用机器学习算法对数据进行分析时,首先要对数据进行了解,而了解数据最快速的方式就是可视化。但是作者可视化采用的方法对很多data都通用,且采用的是各种图形的图矩阵,如直方图、散点图矩阵等等。本文就根据作者的分析来介绍如何运用pandas作各种矩阵图。
(1)数据
数据为Pima Indians dataset,在作者的代码中包含该数据来源网址,即皮马印第安人糖尿病数据集,样本个数有768个,包含变量有:
Preg:怀孕次数
Plas:口服葡萄糖耐量试验中血浆葡萄糖浓度为2小时
Pres:舒张压(mm Hg)
Skin:三头肌皮褶厚度(mm)
test :2小时血清胰岛素(μU/ ml)
mass:体重指数(kg /(身高(m))^ 2)
pedi:糖尿病血统功能
age:年龄(岁)
class:类变量(0或1),估计是性别。
(2)Histograms(直方图矩阵)

url = "https://archive.ics.uci.edu/ml/machine-learning-databases/pima-indians-diabetes/pima-indians-diabetes.data"
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class'] #设置变量名
data = pandas.read_csv(url, names=names)  #采用pandas读取csv数据
data.hist()
plt.show()
直方图矩阵.png

但是,我们看到图形并不协调,存在变量与坐标重叠的情况,我们可以调整hist()的参数来解决,包括对x轴、y轴标签大小的调节((xlabelsize,ylabelsize),整个图形布局大小的调节figsize:

data.hist(xlabelsize=7,ylabelsize=7,figsize=(8,6)) #

plt.show()
直方图矩阵1.png

可以看到每一个变量的分布情况,其中mass、plas、pres呈现一定的正态分布,其他除了class之外,基本上左偏。

(3)Density Plots(密度图矩阵)

data.plot(kind='density', subplots=True, layout=(3,3), sharex=False,fontsize=8,figsize=(8,6))
plt.show()

原始代码输出后仍然存在重叠的地方,在这里加入了对图中坐标文字fontsize,以及整体布局大小figsize。


密度图.png

(4)箱线图矩阵(Box and Whisker Plots)

data.plot(kind='box', subplots=True, layout=(3,3), sharex=False, sharey=False, fontsize=8,figsize=(8,6))
plt.show()

与(3)类似,在这里注意可以共享x轴和y轴,用了sharex=False, sharey=False的命令。


箱线图.png

(5)相关系数矩阵图(Correlation Matrix Plot)

import numpy
correlations = data.corr()  #计算变量之间的相关系数矩阵
# plot correlation matrix
fig = plt.figure() #调用figure创建一个绘图对象
ax = fig.add_subplot(111)
cax = ax.matshow(correlations, vmin=-1, vmax=1)  #绘制热力图,从-1到1
fig.colorbar(cax)  #将matshow生成热力图设置为颜色渐变条
ticks = numpy.arange(0,9,1) #生成0-9,步长为1
ax.set_xticks(ticks)  #生成刻度
ax.set_yticks(ticks)
ax.set_xticklabels(names) #生成x轴标签
ax.set_yticklabels(names)
plt.show()
相关系数矩阵.png

颜色越深表明二者相关性越强。

(6)散布图矩阵(Scatterplot Matrix)

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

推荐阅读更多精彩内容