Zep*_*hyr 10 python numpy matplotlib heatmap seaborn
我想绘制一个seaborn.heatmap
并仅注释一些行/列。
所有单元格都有注释的示例:
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
n1 = 5
n2 = 10
M = np.random.random((n1, n2))
fig, ax = plt.subplots()
sns.heatmap(ax = ax, data = M, annot = True)
plt.show()
Run Code Online (Sandbox Code Playgroud)
按照这些示例(添加值注释段落),可以将seaborn.heatmap
每个单元格的注释作为annot
参数传递给数组:
annot :布尔或矩形数据集,可选
如果为 True,则在每个单元格中写入数据值。如果是与数据具有相同形状的类似数组,则使用它来注释热图而不是数据。请注意,DataFrame 将匹配位置,而不是索引。
如果我尝试生成一个数组str
并将其作为annot
参数传递给,seaborn.heatmap
我会收到以下错误:
Traceback (most recent call last):
File "C:/.../myfile.py", line 16, in <module>
sns.heatmap(ax = ax, data = M, annot = A)
File "C:\venv\lib\site-packages\seaborn\_decorators.py", line 46, in inner_f
return f(**kwargs)
File "C:\venv\lib\site-packages\seaborn\matrix.py", line 558, in heatmap
plotter.plot(ax, cbar_ax, kwargs)
File "C:\venv\lib\site-packages\seaborn\matrix.py", line 353, in plot
self._annotate_heatmap(ax, mesh)
File "C:\venv\lib\site-packages\seaborn\matrix.py", line 262, in _annotate_heatmap
annotation = ("{:" + self.fmt + "}").format(val)
ValueError: Unknown format code 'g' for object of type 'numpy.str_'
Run Code Online (Sandbox Code Playgroud)
生成的代码ValueError
(在本例中,我尝试删除第四列的注释作为示例):
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
n1 = 5
n2 = 10
M = np.random.random((n1, n2))
A = np.array([[f'{M[i, j]:.2f}' for j in range(n2)] for i in range(n1)])
A[:, 3] = ''
fig, ax = plt.subplots(figsize = (6, 3))
sns.heatmap(ax = ax, data = M, annot = A)
plt.show()
Run Code Online (Sandbox Code Playgroud)
出现这个错误的原因是什么?
如何生成seaborn.heatmap
并仅注释选定的行/列?
Rox*_*oxy 13
这是一个格式问题。fmt = ''
如果您使用non-numeric
标签(默认为:) ,则此处是必需的fmt='.2g'
,该标签仅考虑数值并对文本格式的标签引发错误。
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
n1 = 5
n2 = 10
M = np.random.random((n1, n2))
A = np.array([[f'{M[i, j]:.2f}' for j in range(n2)] for i in range(n1)])
A[:, 3] = ''
fig, ax = plt.subplots(figsize = (6, 3))
sns.heatmap(ax = ax, data = M, annot = A, fmt='')
plt.show()
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2850 次 |
最近记录: |