int.a的python学习笔记_人工智能-图表操作304

人工智能之图表操作:FacetGrid、PairGrid、heatmap

  • 1、FacetGrid
  • 2、PairGrid
  • 3、heatmap热图

1、FacetGrid

FacetGrid展示数据集的子集
FacetGrid可以绘制出多达三个维度(row,col,和hue)的图形

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

#facetgrid展示数据集的子集   FacetGrid可以绘制出多达三个维度(row,col,和hue)的图形

t = sns.load_dataset('tips')      #sns的一个内置数据
g = sns.FacetGrid(t,col='time')   #time是t里的一个列
g.map(plt.hist,'tip')             #plt.hist条形图
plt.show()

g1 = sns.FacetGrid(t,col='sex',hue='smoker')
g1.map(plt.scatter,'total_bill','tip',alpha=0.7)   #alpha散点图,点的透明层度
g1.add_legend()                                    #在最右边显示第二个列hue='smoker'的颜色区分
plt.show()

g2 = sns.FacetGrid(t,row='smoker',col='time',margin_titles=True)
g2.map(sns.regplot,'size','total_bill',color='.1',fit_reg=False,x_jitter=.1)   #fit_reg=False不画回归线,x_jitter点在x上的浮动
plt.show()

#自己指定类别顺序
# d = t.day.value_counts().index
# print(d)
d = pd.Categorical(['Thur', 'Fri', 'Sat', 'Sun'])
g4 = sns.FacetGrid(t,row='day',row_order=d,size=2,aspect=4)   #size=2单位长度为2,aspect=4单位宽度为4
g4.map(sns.boxplot,'total_bill')
plt.show()

#例 :绘制多变量
color_2 = dict(Lunch='seagreen',Dinner='gray')
# color_2 ={'Lunch':'seagreen','Dinner':'gary'}         #字典里储存两个量的颜色
with sns.axes_style('white'):
    g5 = sns.FacetGrid(t,col='time',row='sex',palette=color_2,size=5,hue_kws={'marker':['^','v']})           #hue_kws={'marker':['^','v']}指定散点图点的形状
g5.map(plt.scatter,'total_bill','tip',s=50,alpha=0.7,linewidth=0.5,edgecolor='white')    #s=50散点图点的大小为50,
g5.add_legend()
g5.set_axis_labels('X-name','Y-name')                  #set_axis_labels自己指定xy轴名字
g5.set(xticks=[10,20,50],yticks=[2,6,10])              #指定xy显示的值
g5.fig.subplots_adjust(wspace=0.5,hspace=0.5)          #子图和子图之间的宽高间距
plt.show()

2、PairGrid

当有一份数据集有很多变量,
我们需要考察两两变量的之间关系时,
是不是说我们要写很多重复的代码来实现不同变量之间的关系呢?
比如我们研究抢断与得分、抢断与失误、抢断都犯规之间的关系时,
是不是要不停的传不同的变量进去呢?答案是不需要,
因为PairGrid这个类就可以帮我们实现以上的功能,
它的主要功能就是绘制反映成对变量关系的子图

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

#PairGrid  seaborn的散点图矩阵(Pairs Plots)可视化数据

i = sns.load_dataset('iris')
g6 = sns.PairGrid(i)
# g6 = sns.PairGrid(i,hue='species')    #hue='species'添加区分类别species
# g6 = sns.PairGrid(i,vars=['sepal_length','sepal_width'] ,hue='species')   #vars=['sepal_length','sepal_width'],只取'sepal_length','sepal_width'这两个特征
# g6.map_diag(plt.hist)            #指定对角线是直方图
# g6.map_offdiag(plt.scatter)      #指定其他图是散点图
g6.map(plt.scatter)
plt.show()

3、heatmap热图

  • h = sns.heatmap(u,vmin=0.2,vmax=0.5)

限定最小值最大值,超出最大值就都是最大值的颜色,超出最小同理

  • h = sns.heatmap(u,center=0)

center=0,以0为中心改变颜色

  • h = sns.heatmap(u,annot=True,fmt=‘d’)

annot=True显示每一格的值,mt='d’设置字体(默认的会乱码)

  • h = sns.heatmap(u,linewidths=0.5)

linewidths=0.5每个格之间的间距为0.5

  • h = sns.heatmap(u,cmap=‘Y1CnBu’)

cmap='Y1CnBu’指定颜色板

  • h = sns.heatmap(u,cbar=False)

cbar=False隐藏cbar

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

u = np.random.rand(3,3)   #随机生成3x3二维矩阵数据
h = sns.heatmap(u)
# h = sns.heatmap(u,vmin=0.2,vmax=0.5)  #限定最小值最大值,超出最大值就都是最大值的颜色,超出最小同理
# h = sns.heatmap(u,center=0)           #center=0,以0为中心改变颜色
# h = sns.heatmap(u,annot=True,fmt='d') #annot=True显示每一格的值,mt='d'设置字体(默认的会乱码)
# h = sns.heatmap(u,linewidths=0.5)     #linewidths=0.5每个格之间的间距为0.5
# h = sns.heatmap(u,cmap='Y1CnBu')      #cmap='Y1CnBu'指定颜色板
# h = sns.heatmap(u,cbar=False)         #cbar=False隐藏cbar
plt.show()

u1 = sns.load_dataset('flights')           #sns内部储存数据,记录的是一个航班某年某月载客人数
u1 = u1.pivot('month','year','passengers') #数据类型转换成'month','year','passengers'为行名的矩阵
h1 = sns.heatmap(u1)
plt.show()

int.a的python学习笔记_人工智能-图表操作304_第1张图片

你可能感兴趣的:(人工智能/机器学习,图表,python)