精华内容
下载资源
问答
  • 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'),

    In [15]: df.head()

    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 Ax=b
    其中矩阵A往往非常稀疏(即其中有约60%以上的元素都是零)且成“块”“带”状分布。有时我们想看一下其非零元的分布,就可以借助Matlab或者Python的函数实现。

    Matlab画矩阵的非零元分布图

    程序

    %Matlab code
    clear
    clc
    
    load("A.mat")
    spy(A)
    
    

    结果

    Matlab

    Python画矩阵的非零元分布图

    程序

    import numpy as np
    import matplotlib.pyplot as plt
    
    
    def read_file(file_name):
    	f = open(file_name)
    	lines = f.readlines()
    	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"
    	K = read_file(file_name)
    	plt.matshow(K)
    	plt.show()
    	
    

    结果

    Python

    总结

    基本都是一行代码的事:

    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()
        ax = fig.add_subplot(111)
        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...
  • 利用python画混淆矩阵

    2020-03-08 17:48:32
    1.如果你已经通过实验后有了矩阵数据,那么就可以直接利用这一方法,源码如下: from sklearn.metrics import confusion_matrix # 生成混淆矩阵函数 import matplotlib.pyplot as plt # 绘图库 import numpy as np...
  • python 混淆矩阵可视化

    千次阅读 2019-10-01 18:37:11
    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....
  • python混淆矩阵

    2021-03-28 19:13:21
    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 实现矩阵按对角线打印,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • python画混淆矩阵(confusion matrix)

    千次阅读 2019-09-23 02:55:07
    混淆矩阵(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所以研究...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,987
精华内容 10,794
关键字:

python画矩阵

python 订阅