-
2020-08-21 23:28:12
- 矩阵图即用一张图绘制多个变量之间的关系,数据挖掘中常用于初期数据探索;
- 本文介绍python中seaborn.pairplot(傻瓜版)和seaborn.PairGrid(更个性化版)绘制矩阵图
本文内容速览
欢迎随缘关注@pythonic生物人
更多相关内容 -
Python可视化25_seaborn绘制矩阵图
2021-02-10 20:02:26矩阵图即用一张图绘制多个变量之间的关系,数据挖掘中常用于初期数据探索;本文介绍python中seaborn.pairplot(傻瓜版)和seaborn.PairGrid(更个性化版)绘制矩阵图本文内容速览imageimage目录1、绘图数据准备2、...矩阵图即用一张图绘制多个变量之间的关系,数据挖掘中常用于初期数据探索;
本文介绍python中seaborn.pairplot(傻瓜版)和seaborn.PairGrid(更个性化版)绘制矩阵图
本文内容速览
image
image
目录
1、绘图数据准备
2、seaborn.pairplot
加上分类变量
修改调色盘
x,y轴方向选取相同子集
x,y轴方向选取不同子集
非对角线散点图加趋势线
对角线上的四个图绘制方式
只显示网格下三角图形
图形外观设置
3、seaborn.PairGrid(更灵活的绘制矩阵图)
每个子图绘制同类型的图
对角线和非对角线分别绘制不同类型图
对角线上方、对角线、对角线下方分别绘制不同类型图
其它一些参数修改
1、绘图数据准备
还是使用鸢尾花iris数据集
#导入本帖要用到的库,声明如下:
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from pandas import Series,DataFrame
from sklearn import datasets
import seaborn as sns
#导入鸢尾花iris数据集(方法一)
#该方法更有助于理解数据集
iris=datasets.load_iris()
x, y =iris.data,iris.target
y_1 = np.array(['setosa' if i==0 else 'versicolor' if i==1 else 'virginica' for i in y])
pd_iris = pd.DataFrame(np.hstack((x, y_1.reshape(150,1))),columns=['sepal length(cm)','sepal width(cm)','petal length(cm)','petal width(cm)','class'])
#astype修改pd_iris中数据类型object为float64
pd_iris['sepal length(cm)']=pd_iris['sepal length(cm)'].astype('float64')
pd_iris['sepal width(cm)']=pd_iris['sepal width(cm)'].astype('float64')
pd_iris['petal length(cm)']=pd_iris['petal length(cm)'].astype('float64')
pd_iris['petal width(cm)']=pd_iris['petal width(cm)'].astype('float64')
#导入鸢尾花iris数据集(方法二)
#import seaborn as sns
#iris_sns = sns.load_dataset("iris")
数据集简单统计
image
2、seaborn.pairplot
语法:seaborn.pairplot(data, hue=None, hue_order=None, palette=None, vars=None, x_vars=None, y_vars=None, kind='scatter', diag_kind='auto', markers=None, height=2.5, aspect=1, corner=False, dropna=True, plot_kws=None, diag_kws=None, grid_kws=None, size=None)
g = sns.pairplot(pd_iris)
g.fig.set_size_inches(12,12)#figure大小
sns.set(style='whitegrid',font_scale=1.5)#文本大小
image对角线4张图是变量自身的分布直方图;
非对角线的 12 张就是某个变量和另一个变量的关系。
加上分类变量
g = sns.pairplot(pd_iris,
hue='class'#按照三种花分类
)
sns.set(style='whitegrid')
g.fig.set_size_inches(12,12)
sns.set(style='whitegrid',font_scale=1.5)
image
修改调色盘
可以使用Matplotlib、seaborn、颜色号list等色盘。可参考:
import palettable
g = sns.pairplot(pd_iris,
hue='class',
palette=palettable.cartocolors.qualitative.Bold_9.mpl_colors,#palettable颜色盘
)
sns.set(style='whitegrid')
g.fig.set_size_inches(12,12)
sns.set(style='whitegrid',font_scale=1.5)
image
g = sns.pairplot(pd_iris,
hue='class',
palette='Set1',#Matplotlib颜色
)
sns.set(style='whitegrid')
g.fig.set_size_inches(12,12)
sns.set(style='whitegrid',font_scale=1.5)
image
g = sns.pairplot(pd_iris,
hue='class',
palette=['#dc2624', '#2b4750', '#45a0a2'],#使用传入的颜色list
)
sns.set(style='whitegrid')
g.fig.set_size_inches(12,12)
sns.set(style='whitegrid',font_scale=1.5)
image
x,y轴方向选取相同子集
import palettable
g = sns.pairplot(pd_iris,
hue='class',
palette=palettable.cartocolors.qualitative.Bold_9.mpl_colors,
vars=['sepal length(cm)','sepal width(cm)'],#x,y轴方向选取相同子集绘图
)
sns.set(style='whitegrid')
g.fig.set_size_inches(12,6)
sns.set(style='whitegrid',font_scale=1.5)
image
x,y轴方向选取不同子集
import palettable
g = sns.pairplot(pd_iris,
hue='class',
palette=palettable.cartocolors.qualitative.Bold_9.mpl_colors,
x_vars=['sepal length(cm)','sepal width(cm)'],#x,y轴方向选取不同子集
y_vars=['petal length(cm)','petal width(cm)'],
)
sns.set(style='whitegrid')
g.fig.set_size_inches(12,6)
sns.set(style='whitegrid',font_scale=1.5)
image
非对角线散点图加趋势线
import palettable
g = sns.pairplot(pd_iris,
hue='class',
palette=palettable.cartocolors.qualitative.Bold_9.mpl_colors,
kind='reg',#默认为scatter,reg加上趋势线
)
sns.set(style='whitegrid')
g.fig.set_size_inches(12,12)
sns.set(style='whitegrid',font_scale=1.5)
image
对角线上的四个图绘制方式
可选参数为‘auto’, ‘hist’(默认), ‘kde’, None。
import palettable
g = sns.pairplot(pd_iris,
hue='class',
palette=palettable.cartocolors.qualitative.Bold_9.mpl_colors,
diag_kind='hist',#hist直方图
)
sns.set(style='whitegrid')
g.fig.set_size_inches(12,12)
sns.set(style='whitegrid',font_scale=1.5)
image
只显示网格下三角图形
import palettable
g = sns.pairplot(pd_iris,
hue='class',
palette='Set1',
corner=True#图形显示左下角
)
g.fig.set_size_inches(12,12)
sns.set(font_scale=1.5)
image
图形外观设置
import palettable
g = sns.pairplot(pd_iris,
hue='class',
palette='Set1',
markers=['$\clubsuit,'.','+'],#散点图的marker
plot_kws=dict(s=50, edgecolor="r", linewidth=1),#非对角线上的图marker大小、外框、外框线宽
diag_kws=dict(shade=True)#对角线上核密度图是否填充
)
g.fig.set_size_inches(12,12)
sns.set(font_scale=1.5)
image
3、seaborn.PairGrid(更灵活的绘制矩阵图)
seaborn.PairGrid(data, hue=None, hue_order=None, palette=None, hue_kws=None, vars=None, x_vars=None, y_vars=None, corner=False, diag_sharey=True, height=2.5, aspect=1, layout_pad=0, despine=True, dropna=True, size=None)
每个子图绘制同类型的图
g = sns.PairGrid(pd_iris,
hue='class',
palette='husl',)
g = g.map(plt.scatter)#map每个子图绘制一样类型的图
g = g.add_legend()
g.fig.set_size_inches(12,12)
sns.set(style='whitegrid',font_scale=1.5)
image
对角线和非对角线分别绘制不同类型图
g = sns.PairGrid(pd_iris,
hue='class',
palette='Set1',)
g = g.map_diag(plt.hist)#对角线绘制直方图
g = g.map_offdiag(plt.scatter)#非对角线绘制散点图
g = g.add_legend()
g.fig.set_size_inches(12,12)
sns.set(style='whitegrid',font_scale=1.5)
image
对角线上方、对角线、对角线下方分别绘制不同类型图
g = sns.PairGrid(pd_iris, hue='class',)
g = g.map_upper(sns.scatterplot)
g = g.map_lower(sns.kdeplot, colors="C0")
g = g.map_diag(sns.kdeplot, lw=2)3绘制核密度图
g = g.add_legend()#添加图例
sns.set(style='whitegrid',font_scale=1.5)
image
其它一些参数修改
g = sns.PairGrid(pd_iris, hue='class',
palette='Set1',
hue_kws={"marker": ["^", "s", "D"]},#设置marker
diag_sharey=False,
)
g = g.map_upper(sns.scatterplot,edgecolor="w", s=40)#设置点大小,外框颜色
g = g.map_lower(sns.kdeplot, colors="#01a2d9")#设置下三角图形颜色
g = g.map_diag(sns.kdeplot, lw=3)#对角图形颜色
g = g.add_legend()#添加图例
g.fig.set_size_inches(12,12)
sns.set(style='whitegrid',font_scale=1.5)
image参考资料:
-
用Python绘制矩阵图?
2021-02-04 09:29:46我认为您可以使用plt.text来实现这些目的。下面的代码使用它来获得您想要的结果。在import matplotlib.pyplot as pltimport numpy as npfrom matplotlib import rcParamsrcParams['font.family'] = 'serif'rcParams...我认为您可以使用plt.text来实现这些目的。下面的代码使用它来获得您想要的结果。在import matplotlib.pyplot as plt
import numpy as np
from matplotlib import rcParams
rcParams['font.family'] = 'serif'
rcParams['font.size'] = 16
A = [[1, 3, 4, 5, 6, 7],
[3, 3, 0, 7, 9, 2],
[1, 3, 4, 5, 6, 6]]
X = ["A", "B", "C", "E", "F", "G"]
Y = ["R", "S", "T"]
m = len(Y)
n = len(X)
plt.figure(figsize=(n + 1, m + 1))
for krow, row in enumerate(A):
plt.text(5, 10*krow + 15, Y[krow],
horizontalalignment='center',
verticalalignment='center')
for kcol, num in enumerate(row):
if krow == 0:
plt.text(10*kcol + 15, 5, X[kcol],
horizontalalignment='center',
verticalalignment='center')
plt.text(10*kcol + 15, 10*krow + 15, num,
horizontalalignment='center',
verticalalignment='center')
plt.axis([0, 10*(n + 1), 10*(m + 1), 0])
plt.xticks(np.linspace(0, 10*(n + 1), n + 2), [])
plt.yticks(np.linspace(0, 10*(m + 1), m + 2), [])
plt.grid(linestyle="solid")
plt.savefig("Table.png", dpi=300)
plt.show()
而且,你得到了
-
graphM:绘制矩阵图。-matlab开发
2021-05-29 03:48:57graphM(M) 绘制矩阵 M 的图(无序),如果条目 M_ij 非零,则显示节点 i(行)和 j(列)之间的连接。 对角线元素不计算在内。 -
详解pandas绘制矩阵散点图(scatter_matrix)的方法
2020-09-17 12:21:30主要介绍了详解pandas绘制矩阵散点图(scatter_matrix)的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 -
python用matplotlib 用matshow()绘制矩阵,绘制矩阵图
2021-08-11 11:46:57一、plt.cm绘制 示例一:设置0-100的10*10的矩阵 代码1: import matplotlib.pyplot as plt import numpy as np A = np.arange(0, 100).reshape(10, 10) plt.matshow(mat, cmap=plt.cm.Reds)#这里设置颜色为...本次演示用jupter notebook.
一、plt.cm绘制
示例一:设置0-100的10*10的矩阵
代码1:
import matplotlib.pyplot as plt import numpy as np A = np.arange(0, 100).reshape(10, 10) plt.matshow(mat, cmap=plt.cm.Reds)#这里设置颜色为红色,也可以设置其他颜色 plt.title("matrix A") plt.show()
得到如下结果图1:
注:对于矩阵的颜色设置还有很多,改变 plt.matshow(mat, cmap=plt.cm.Reds)中的Reds可根据自己喜好设置其他颜色,以下给出其他几种颜色。
代码2:(设置颜色为蓝色)
import matplotlib.pyplot as plt import numpy as np A = np.arange(0, 100).reshape(10, 10) plt.matshow(mat, cmap=plt.cm.Blues) plt.title("matrix A") plt.show()
结果2:
代码3:(设置颜色灰色)
import matplotlib.pyplot as plt import numpy as np A = np.arange(0, 100).reshape(10, 10) plt.matshow(mat, cmap=plt.cm.gray) plt.title("matrix A") plt.show()
结果3:
示例二:随机设置矩阵 A
代码4:
import matplotlib.pyplot as plt import numpy as np A=np.array([[4,3,2,4],[5,4,7,8],[9,16,11,5],[13,3,4,16],[6,18,1,20]]) plt.matshow(X, cmap=plt.cm.Reds) plt.title("matrix A") plt.show()
结果4:
注:从图中可以看出,不同的数值大小红色的深度是不一样的,数值越大红色越深,这里同样可以根据自己喜好设置不同的颜色,我就不再过多展示 。
二、用plt.colorbar绘制矩阵图
代码5:
import numpy as np import matplotlib.pyplot as plt X=np.array([[0,3,2,4],[5,4,7,8],[9,16,8,5],[13,3,4,16],[6,18,1,20]]) A = np.arange(0, 100).reshape(10, 10) ax = plt.matshow(X) plt.colorbar(ax.colorbar, fraction=0.025) plt.title("matrix X"); plt.show()
结果5:
本人学习过程中的一些笔记,文中可能有些不足,欢迎大家讨论和指正。
-
Python基于pandas绘制散点图矩阵代码实例
2020-12-17 17:25:261、示例 1 代码 import numpy as np import pandas as pd import matplotlib.pyplot as plt ...# 绘制散点图矩阵 pd.plotting.scatter_matrix(df) plt.show() 图形 2、示例 2 代码 import numpy as -
Excel图表8——矩阵图(散点图)
2021-05-16 18:10:06Excel图表8——矩阵图(散点图) 实例 原数据 一、计算平均值 二、插入图表 1.插入仅带数据标记的散点图(数据:满意度) 2.删除图例、网格线 3.调整横纵坐标范围 三、添加矩阵图的象限分割线 1.设置横... -
用Excel绘制分类矩阵图
2020-12-31 09:27:00矩阵图相信大家都会绘制,就是在散点图的基础上绘制出来的,绘制出来类似下图,然后有朋友提出能否按不同象限或者类别快速设置散点的颜色呢?按常规做法,需要一个一个点的设置颜色,如果点少的话,还... -
MATLAB | 如何绘制高端大气的分组矩阵图
2022-06-01 17:51:42效果展示: 例如随机生成一组分组数据,在最后两行调用函数: 为了绘图更加好看,后面使用中的数据绘图,该数据第一列即为分组情况:(该数据集已放入压缩包,请回复文末关键词获取) 各个属性在构造时候使用以及在... -
python/matplotlib绘制混淆矩阵图
2022-03-11 14:27:16# 热度图,后面是指定的颜色块,可设置其他的不同颜色 plt.imshow(confusion, cmap=plt.cm.Blues) # plt.imshow(confusion) # ticks 坐标轴的坐标点 # label 坐标轴标签说明 indices = range(len(confusion)) # 第一... -
python +gis 点数据转栅格数据 绘制矩阵图
2019-09-04 16:50:52python +gis 点数据转栅格数据 绘制矩阵图 import numpy as np import pandas as pd import matplotlib.pyplot as plt import matplotlib as mpl mpl.rcParams['font.sans-serif'] = ['SimHei'] #将全局字体设... -
Matplotlib:散点图、矩阵散点图
2020-12-22 00:24:30矩阵散点图(对比不同系列之间的关系) 1.散点图 # plt.scatter()散点图 # plt.scatter(x, y, s=20, c=None, marker='o', cmap=None, norm=None, vmin=None, vmax=None, # alpha=None, linewidths=None, verts=None,... -
矩阵色块图,matlab画矩阵色块图,matlab
2021-09-10 21:11:36根据矩阵绘制色块图,可以用于绘制相关系数矩阵图,在程序中改变相关颜色值等,用丰富的颜色和形状形象的展示矩阵元素值的大小。 -
Python可视化25|seaborn矩阵图
2020-11-23 23:47:55矩阵图即用一张图绘制多个变量之间的关系,数据挖掘中常用于初期数据探索;本文介绍python中seaborn.pairplot(傻瓜版)和seaborn.PairGrid(更个性化版)绘制矩阵图本文内容速览目录1、绘图数据准备2、seaborn.... -
matplotlib-矩阵绘图
2021-03-21 10:58:53第八节 矩阵绘图 # 引入包 import matplotlib.pyplot as plt import numpy as np # 准备数据 m = np.random.rand(10, 12) m array([[0.46838188, 0.88061003, 0.09905449, 0.86064009, 0.54258062, 0.0397806 , 0.... -
Python数据分析-绘图-2-Seaborn进阶绘图-5-矩阵图
2021-12-06 21:27:05热力图以颜色的明亮程度来显示数据的密集程度。颜色越明亮,数据越密集。 函数:seaborn.heatmap 常用参数: data 接收二维矩阵数据集,用于绘图的数据集。 vmin,vmax 接收float,表示颜色映射的值的... -
Excel图表9——发展矩阵图
2021-05-17 14:24:25二、绘制矩阵图 Excel图表8——矩阵图(散点图)https://blog.csdn.net/HCHHC/article/details/116898916 三、绘制发展矩阵图 1添加线条 选择任意一个数据点(即系列全部的点,而不是某个单一的点),设置数据... -
Python根据已知邻接矩阵绘制无向图操作示例
2020-09-20 08:22:18主要介绍了Python根据已知邻接矩阵绘制无向图操作,涉及Python使用networkx、matplotlib进行数值运算与图形绘制相关操作技巧,需要的朋友可以参考下 -
matlab绘制矩阵色块图
2018-06-09 20:12:48在R语言中有根据矩阵绘制色块图的程序,可以用于绘制相关系数矩阵图,用丰富的颜色和形状形象的展示矩阵元素值的大小。今天介绍的是如何用matlab绘制矩阵色块图。 1、绘制网格线,网格中显示矩阵元素,显示黑色... -
Python实现散点图和散点图矩阵的绘制
2018-11-09 23:03:59说明:代码运行环境为 Win10+Python3+jupyter notebook ...绘制散点图的主要方法: 方法1:通过pandas包中的DataFrame对象调用plot()或plot.scatter()方法 方法2:通过matplotlib包中的axes对象调用sca... -
python绘制矩阵散点图
2021-10-11 12:00:50# 定义画散点图的函数 def draw_scatter(n, s): """ :param n: 点的数量,整数 :param s:点的大小,整数 :return: None """ # 加载数据 data = np.loadtxt('results1.txt', encoding='utf-8', delimiter=',')... -
使用python绘制彩色矩阵
2020-05-06 19:28:46本篇文章小编给大家介绍Python彩色螺旋矩阵的绘制,在文章中小编详细的解析了绘值螺旋矩形的代码,对于“懒癌”小伙伴们,小编还给大家提供了完整的代码文件,可直接运行。 -
Python利用邻接矩阵绘制复杂网络图并分析网络基本拓扑特征
2020-07-12 10:27:48利用python载入邻接矩阵绘制网络图,基于python语言的特点,对邻接矩阵加以处理后再进行应用,即将邻接矩阵去除第一列(节点序号列),复杂网络的基本拓扑结构可以用图论的方法表示成G =(V,E),V中元素称为节点或... -
图像颜色rgb调整matlab实现_matlab矩阵RGB绘制为图像
2020-11-19 21:32:07摘要 Matlab 是当今最优秀的科技应用软件之一它一强大的科学计算与可视化 功能简单易用开放式可扩展环境特别是所附带的30多种面向不同领域工具 箱支持使得它在许多科学领域中成为计算机辅助设计与分析算法研究和应用... -
echarts 矩阵图用法
2020-02-24 21:13:18name:'矩形图', type:'treemap', itemStyle: { normal: { label: { show: true, formatter: "{b}" }, borderWidth: 1 }, emphasis: { label: { show: true } } }, data:[{ "name": "AWS Support",... -
H5圆圈缩放矩阵图案动画特效
2021-07-24 19:43:50H5圆圈缩放矩阵图案动画特效是一款基于HTML5 Canvas制作的全屏圆圈缩放矩阵图案动画背景特效。