• Given a set of points (x, y, 'heat'),In [15]: df.head()Out[15]:x y heat0 0.660055 0.395942 2.3683041 0.126268 0.187978 6.7602612 0.174857 0.637188 1.0250783 0.460085 0.759171 ...

Given a set of points (x, y, 'heat'),

Out[15]:

x y heat

0 0.660055 0.395942 2.368304

1 0.126268 0.187978 6.760261

2 0.174857 0.637188 1.025078

3 0.460085 0.759171 2.635334

4 0.689242 0.173868 4.845778

How to generate a heat map matrix and delimit heat regions (hard)?

in such a way that, given a point, it is possible to get all points within the same region.

PS:

From Generate a heatmap in MatPlotLib using a scatter data set, I know how to generate graphs of regions, but not how to generate the region 'matrix' (so that given a property, it says in which region it is).

解决方案

I guess it depend how you did the heatmap but assuming you used the first example from the post you linked:

import numpy as np

import numpy.random

import matplotlib.pyplot as plt

# Generate some test data

x = np.random.randn(8873)

y = np.random.randn(8873)

heatmap, xedges, yedges = np.histogram2d(x, y, bins=50)

extent = [xedges[0], xedges[-1], yedges[0], yedges[-1]]

plt.clf()

plt.imshow(heatmap, extent=extent)

plt.show()

So you now if you have a request about a point with coords (a,b) you need to find the position of the nearest value to a in xedges (lets call it a_heatmap), the position of the nearest value of b in yedges (b_heatmap), then look for the returned value by :

heatmap[a_heatmap, b_heatmap]

展开全文
• 文章目录 前言 Matlab画矩阵的非零元分布图 程序 结果 Python画矩阵的非零元分布图 程序 结果 总结 前言 一般我们在进行数值计算时，经常会遇到求解如下等式的问题： Ax=b Ax=b Ax=b 其中矩阵A往往非常稀疏(即其中有...

## 前言

一般我们在进行数值计算时，经常会遇到求解如下等式的问题：
A x = b Ax=b
其中矩阵A往往非常稀疏(即其中有约60%以上的元素都是零)且成“块”“带”状分布。有时我们想看一下其非零元的分布，就可以借助Matlab或者Python的函数实现。

%Matlab code
clear
clc

spy(A)

## Python画矩阵的非零元分布图

### 程序

import numpy as np
import matplotlib.pyplot as plt

f = open(file_name)
K = np.zeros((len(lines), len(lines)))
i = 0
for line in lines:
line = line.strip().split('\t')
#K[i, :] = np.array(list(map(int, line)))
K[i] = list(map(int, line))
i+=1
return K

if __name__ == '__main__':
file_name = "A.txt"
plt.matshow(K)
plt.show()

## 总结

基本都是一行代码的事：

Matlab ：spy(A)
Python : matshow(K)

在此亦是回顾一下Python读取文本数据的代码。以上代码和矩阵数据以及结果图都可以去我的GitHub上下载。同时目录下也有自己学习Python过程中总结的一些程序，都有注释，欢迎大家一起学习。

展开全文
• 目录1 矩阵图法简介2 代码 1 矩阵图法简介 矩阵图法就是从多维问题的事件中，找出成对的因素，排列成矩阵图，然后根据矩阵图来分析问题，确定关键点的方法。它是一种通过多因素综合思考，探索问题的好方法。从问题...

# 1 矩阵图法简介

矩阵图法就是从多维问题的事件中，找出成对的因素，排列成矩阵图，然后根据矩阵图来分析问题，确定关键点的方法。它是一种通过多因素综合思考，探索问题的好方法。从问题事项中找出成对的因素群，分别排列成行和列，找出其中行与列的相关性或相关程度大小的一种方法。

# 2 代码

import pandas as pd
import seaborn as sns

df = pd.DataFrame(Sample)

columns=['0'  , '1',  '2'  , '3' , '4' , '5' , '6' , '7' , '8' , '9' , '10', '11' , '12', '13' , '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24']
df.columns=columns

g = sns.pairplot(df)
#g.fig.set_size_inches(12,12)#figure大小
sns.set(style='whitegrid',font_scale=1.5)#文本大小

plt.show()

图太大了，展示了部分结果：
sns.set(font_scale=1.5) 就是字体的大小，后面的数字越大，字体就越大。

# 3 可加入参数

## 3.1 kind

• kind表示联合分布图中非对角线图的类型，可选’reg’与’scatter’、‘kde’、‘hist’，
• 'reg'代表在图片中加入一条拟合直线
• 'scatter'就是不加入这条直线
• 'kde'等高线的形式
• 'hist'就是类似于栅格地图的形式

## 3.2 diag_kind

• diag_kind表示联合分布图中对角线图的类型，可选’hist’与’kde’。
• 'hist'代表直方图
• 'kde'代表直方图曲线化
展开全文
• ## python画混淆矩阵

万次阅读 热门讨论 2018-05-24 14:21:35
对于分类问题，为了直观表示各类别分类的准确性，一般使用...这里给出两种方法混淆矩阵。 方法一：这里采用图像的办法，绘制混淆矩阵的表示图。颜色越深，值越大。 # -*- coding: utf-8 -*- # By Changxu C...

对于分类问题，为了直观表示各类别分类的准确性，一般使用混淆矩阵M.

混淆矩阵M的每一行代表每个真实类（GT），每一列表示预测的类。即：Mij表示GroundTruth类别为i的所有数据中被预测为类别j的数目。

这里给出两种方法画混淆矩阵。

方法一：这里采用画图像的办法，绘制混淆矩阵的表示图。颜色越深，值越大。

# -*- coding: utf-8 -*-
# By Changxu Cheng, HUST

from __future__ import division
import numpy as np
from skimage import io, color
from PIL import Image, ImageDraw, ImageFont
import os

def drawCM(matrix, savname):
# Display different color for different elements
lines, cols = matrix.shape
sumline = matrix.sum(axis=1).reshape(lines, 1)
ratiomat = matrix / sumline
toplot0 = 1 - ratiomat
toplot = toplot0.repeat(50).reshape(lines, -1).repeat(50, axis=0)
io.imsave(savname, color.gray2rgb(toplot))
# Draw values on every block
image = Image.open(savname)
draw = ImageDraw.Draw(image)
font = ImageFont.truetype(os.path.join(os.getcwd(), "draw/ARIAL.TTF"), 15)
for i in range(lines):
for j in range(cols):
dig = str(matrix[i, j])
if i == j:
filled = (255, 181, 197)
else:
filled = (46, 139, 87)
draw.text((50 * j + 10, 50 * i + 10), dig, font=font, fill=filled)
image.save(savname, 'jpeg')

if __name__ == "__main__":
drawCM(np.random.randint(16, size=16).reshape(4,4), 'tmp.jpg')

注意：需要用到字体文件。代码中使用的是ARIAL.TTF。这样才可以在图中直接标注出数目。

某实验结果图如下（不是上述__name__ == "__main__"代码的执行结果）

方法二：利用matplotlib.pyplot.matshow画图

from __future__ import division
import  numpy as np
import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator

def plotCM(classes, matrix, savname):
"""classes: a list of class names"""
# Normalize by row
matrix = matrix.astype(np.float)
linesum = matrix.sum(1)
linesum = np.dot(linesum.reshape(-1, 1), np.ones((1, matrix.shape[1])))
matrix /= linesum
# plot
plt.switch_backend('agg')
fig = plt.figure()
cax = ax.matshow(matrix)
fig.colorbar(cax)
ax.xaxis.set_major_locator(MultipleLocator(1))
ax.yaxis.set_major_locator(MultipleLocator(1))
for i in range(matrix.shape[0]):
ax.text(i, i, str('%.2f' % (matrix[i, i] * 100)), va='center', ha='center')
ax.set_xticklabels([''] + classes, rotation=90)
ax.set_yticklabels([''] + classes)
#save
plt.savefig(savname)

这种方法可以直接标出坐标轴的含义，比较方便。

展开全文
• ## python画混淆矩阵图

千次阅读 2020-10-18 16:33:27
1. 计算混淆矩阵 from sklearn.metrics import confusion_matrix # 导入计算混淆矩阵的包 C1= confusion_matrix(True_label, T_predict1) #True_label 真实标签 shape=(n,1);T_predict1 预测标签 shape=(n,1) 2. ...
• ## python画混淆矩阵2

千次阅读 2019-09-09 22:24:08
在做分类的时候，经常需要混淆矩阵，下面我们使用python的matplotlib包，scikit-learning机器学习库也同样提供了例子：http://scikit-learn.org/stable/auto_examples/plot_confusion_matrix.html， 但是这样的图...
• 鉴于最近复习线性代数计算量较大，且1800答案常常忽略一些逆阵、行列式的计算答案，故用python写出矩阵的简单计算程序，便于检查出错的步骤。 1、行列式 可自行更改阶数from numpy import * # 求行列式 ,建议：取...
• ## Python画混淆矩阵

千次阅读 2018-11-15 15:08:31
# -*-coding:utf-8-*- from sklearn.metrics import confusion_matrix import matplotlib.pyplot as plt import numpy as np #labels表示你不同类别的代号，比如这里的demo中有13个类别 labels = ['A', 'B', 'C', '...
• ## python画混淆矩阵

千次阅读 2018-03-27 02:51:35
# testData表示要计算的混淆数据矩阵，k表示数据矩阵的是k*k的 dataMat = np.mat(testData) P0 = 0.0 for i in range (k): P0 += dataMat[i , i] * 1.0 xsum = np.sum(dataMat , axis = 1 ) ysum...
• 1.如果你已经通过实验后有了矩阵数据，那么就可以直接利用这一方法，源码如下： from sklearn.metrics import confusion_matrix # 生成混淆矩阵函数 import matplotlib.pyplot as plt # 绘图库 import numpy as np...
• python 混淆矩阵 可视化
• python 二维矩阵转三维矩阵示例如下所示：>>> import numpy as np>>> a = np.arange(12).reshape(3,4)>>> aarray([[ 0, 1, 2, 3],[ 4, 5, 6, 7],[ 8, 9, 10, 11]])>>> type(a)>>> b=np.reshape(a,(3,4,1))>>> np....
• https://blog.csdn.net/qq_41645987/article/details/109146503 博客代码：python画混淆矩阵图（里面有代码） https://blog.csdn.net/li123_123_/article/details/91984838混淆矩阵（confusion_matrix）的可视化 ...
• 这次给大家带来python操作二维数组画图，python操作二维数组画图的注意事项有哪些，下面就是实战案例，一起来看一下。1、二维数组取值注：不管是二维数组，还是一维数组，数组里的数据类型要一模一样，即若是数值型...
• 今天小编就为大家分享一篇python 实现矩阵按对角线打印，具有很好的参考价值，希望对大家有所帮助。一起跟随小编过来看看吧
• 混淆矩阵（Confusion Matrix），是一种在深度学习中常用的辅助工具，可以让你直观地了解你的模型在哪一类样本里面表现得不是很好。 如上图，我们就可以看到，有一个样本原本是0的，却被预测成了1，还有一个，原本...
• 1：seaborn 是一个精简的python库，可以创建具有统计意义的图表，能理解pandas的DataFrame类型。详见官网 点击打开链接 。 2：pandas.DataFrame.corr#Pandas库中的求解相关系数（计算列的两两相关，不包括NA/null值...
• python环境编程下做多分类问题要混淆矩阵，复制了网上的代码，但是发现运行显示出来的混淆矩阵和原作者贴出来的不一样，如下左边图所示（截去了坐标标题信息），边界数字都跑到矩形框外边去了，恰好我有两个...
• Python实现二维数组输出为图片 对于二维数组，img_mask[[ 0 0 0 ..., 7 7 7][ 0 0 0 ..., 7 7 7][ 0 0 0 ..., 7 7 7]...,[266 266 266 ..., 253 253 253][266 266 266 ..., 253 253 253][266 266 266 ..., 253 253 ...
• 如下所示： def save(data, path): f = xlwt.Workbook() # 创建工作簿 sheet1 = f.add_sheet(u'sheet1', cell_overwrite_ok=True) # 创建sheet ...以上这篇Python 保存矩阵为Excel的实现方法就是小编分
• 直方图 # 用hist(x,bins=10)函数来，参数中x是个List,构建直方图的数集，bins是算出数据的边界及每个bin中有多少个数据点 values=[0,0.6,1.4,1.6,2.2,2.5,2.6,3.2,3.5,3.9,4.2,6] #有12个数据，bins=3将其分为3段...
• I have a very large matrix(10x55678) in "numpy" matrix format. the rows of this matrix correspond to some "topics" and the columns correspond to words(unique words from a text corpus)....
• sns.heatmap(r,annot=True,linewidth=0.5) #r为计算得到的相关系数矩阵 plt.rc('font',family='Times New Roman') plt.tight_layout() plt.savefig('C:\\Users\\47260\\Desktop\\r5.tif',dpi=300) plt.show()
• I have a very large matrix(10x55678) in "numpy" matrix format. the rows of this matrix correspond to some "topics" and the columns correspond to words(unique words from a text corpus)....
• import scipy.io p='D:/debug/predict_array' r='D:/debug/real_array' dataP=scipy.io.loadmat(p);# dataP类型为dictionary ...predict=dataP['predict_array']#获得其中的矩阵数据 real=dataR['real_a...
• 所以我有一个二维数组（命名数据），它看起来像：Shape 0 Shape 1 ... Shape N------- ------- -------Scale 0 | Value00 , Value01 ... Value0N |Scale 1 | Value10 , Value11 ...
• ## python画热力图（相关系数矩阵图）

万次阅读 多人点赞 2018-05-08 16:40:00
使用热力图的形式展示包括相关系数矩阵图的二维矩阵的方法，目前发现有两个：首先是使用pandas包的函数，但是pandas包的目测，不能显示数字？如果想试一下，可以参考https://zhuanlan.zhihu.com/p/26100511所以研究...

...

python 订阅