Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何注释热图中的特定单元格?_Python_Matplotlib_Seaborn - Fatal编程技术网

Python 如何注释热图中的特定单元格?

Python 如何注释热图中的特定单元格?,python,matplotlib,seaborn,Python,Matplotlib,Seaborn,我怎样才能注释四个角单元格 for N in Nvals: for R in Rvals: filename = "data" filename += "-N" + str(N) + "-R0" + str(R) filename += ".txt" data = [] with open(filename) as file:

我怎样才能注释四个角单元格

for N in Nvals:
    for R in Rvals:
        filename = "data"
        filename += "-N" + str(N) + "-R0" + str(R)
        filename += ".txt"

        data = []
        with open(filename) as file:
            for line in file.readlines():
                #line = line.strip('"\'`(), False True \n')
                try:
                    value = float(line)
                except ValueError:
                    pass
                else:
                    data.append(value)

        data = np.array(data)
        mean.append(np.mean(data))
               
    mean = np.array(mean).reshape(11,10)

    plt.figure(1)
    plt.figure(figsize=(3,3), dpi=175)

    res=sns.heatmap(mean,square=True,
                norm=LogNorm(0.01, 100),
            annot=True,annot_kws={'size': 4},
            xticklabels=False, yticklabels=False,
            cbar = False,
            cmap="viridis_r")
    res.invert_yaxis()
Seaborn的热图允许显式地给出一个2D数组用作注释。例如,您可以创建一个列表,其中包含除拐角处以外的所有空字符串:

从matplotlib导入pyplot作为plt 从matplotlib.colors导入LogNorm 将numpy作为np导入 导入seaborn作为sns 平均值=100**np.random.rand11,10 plt.图1,figsize=3,3,dpi=175 annot_值=np.full_likemean,np.nan 对于[0,0,0,-1,-1,0,-1,-1]中的i,j: annot_值[i,j]=平均值[i,j] m、 n=平均值 如果i在0中,m-1和j在0中,n-1,则annot_值=[[f'{平均值[i,j]:.2g}' 对于j in rangen] 因为我在林中] ax=sns.heatmapmean,square=True, norm=LogNorm0.01100, annot=annot_值,annot_kws={'size':10},fmt=s, xticklabels=False,yticklabels=False, cbar=False, cmap=绿色 ax.invert_yaxis plt.tight_布局 节目 注:请注意,每次调用plt.figure都会创建一个新的数字。因此,建议将两个调用合并为一个,以防止创建空数字

关于f'{mean[i,j]:.2g}':

f将字符串更改为a。 {}内的部分的格式为{value:format}或只是{value}获取默认格式,并将被格式化文本替换。 格式规范是完整格式的一部分,其中.2g表示具有2个有效数字的通用格式。 Seaborn的热图允许显式地给出一个2D数组用作注释。例如,您可以创建一个列表,其中包含除拐角处以外的所有空字符串:

从matplotlib导入pyplot作为plt 从matplotlib.colors导入LogNorm 将numpy作为np导入 导入seaborn作为sns 平均值=100**np.random.rand11,10 plt.图1,figsize=3,3,dpi=175 annot_值=np.full_likemean,np.nan 对于[0,0,0,-1,-1,0,-1,-1]中的i,j: annot_值[i,j]=平均值[i,j] m、 n=平均值 如果i在0中,m-1和j在0中,n-1,则annot_值=[[f'{平均值[i,j]:.2g}' 对于j in rangen] 因为我在林中] ax=sns.heatmapmean,square=True, norm=LogNorm0.01100, annot=annot_值,annot_kws={'size':10},fmt=s, xticklabels=False,yticklabels=False, cbar=False, cmap=绿色 ax.invert_yaxis plt.tight_布局 节目 注:请注意,每次调用plt.figure都会创建一个新的数字。因此,建议将两个调用合并为一个,以防止创建空数字

关于f'{mean[i,j]:.2g}':

f将字符串更改为a。 {}内的部分的格式为{value:format}或只是{value}获取默认格式,并将被格式化文本替换。 格式规范是完整格式的一部分,其中.2g表示具有2个有效数字的通用格式。
谢谢你的帮助。既然我是nee,你能解释一下这是什么意思吗?{意思是[I,j]:.2g}'谢谢你的帮助。既然我是nee,你能解释一下这是什么意思吗