- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试生成 10x10 矩阵的热图。矩阵中的所有值都是概率;所有元素的总和等于 1.0。我决定使用 matshow 绘图类型(它似乎很容易使用),但是到目前为止我无法生成我想要的输出。
1.视觉上有点丑。您会推荐适合热图中使用的颜色图吗?
2.有没有办法在使用matshow时将预定义的bins分配给颜色图?例如。采用 1000 种颜色的渐变,始终对相应的概率使用相同的颜色。在默认行为中,我认为 matshow 检查最小值和最大值,将渐变中的第一个和最后一个颜色分配给这些值,然后通过插值对中间的值进行着色。
有时我在矩阵中的概率非常相似,而其他时候概率的范围可能很大。由于我在上面尝试解释的默认行为,我得到了相似的图,这使得比较更加困难。
顺便说一句,我生成上述热图(和示例图)的代码如下。
谢谢!
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
def pickcoord():
i = np.random.randint(0,10)
j = np.random.randint(0,10)
return [i,j]
board = np.zeros((10,10))
for i in range(1000000):
try:
direction = np.random.randint(0,2)
new_board = np.zeros((10,10))
coords = pickcoord()
if direction == 1:
for k in range(2):
new_board[coords[0]][coords[1]+k] = 1
else:
for k in range(2):
new_board[coords[0]+k][coords[1]] = 1
except IndexError:
new_board = np.zeros((10,10))
board = board + new_board
board_prob = board/np.sum(board)
plt.figure(figsize=(6,6))
plt.matshow(board_prob, cmap=matplotlib.cm.Spectral_r, interpolation='none')
plt.xticks(np.arange(0.5,10.5), [])
plt.yticks(np.arange(0.5,10.5), [])
plt.grid()
最佳答案
你的第二个问题可以使用 matshow
函数的 vmin
和 vmax
参数来解决:
matshow(board_prob, cmap=cm.Spectral_r, interpolation='none', vmin=0, vmax=1)
考虑你的第一个问题,这取决于你想强调或展示什么。从 default colormaps of matplotlib 中选择合适的颜色图.
关于python - 使用 matshow 的 matplotlib 热图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21519709/
我正在尝试使用 matplotlib matshow 一起显示矩阵和相关矢量数据。 vec_data = np.array([[ 0., 1., 1., 1., 0., 1., 1.,
我有一个 101x101 矩阵,我想以图形方式显示它。到目前为止,我使用了 matplotlib.pyplot 中的函数 matshow,如下所示: import numpy as np import
我有一个 NxN 网格,其中包含一些值,每个时间步都会改变。我找到了一种使用 matshow 函数绘制单个网格配置的方法,但我不知道如何在每个时间步更新状态。下面是一个简单的例子: from pyla
我正在尝试制作这样的图形。绘图矩阵,每个都是数值矩阵的可视化。 我认为代码应该如下所示: 使用 PyPlot figure() for i in 1:100 subplot(10, 10, i
我想绘制一个数字矩阵(通过 matshow/imshow 完成)。然后我想在“轴边界上”绘制一些与轴相关的函数。 但是:我希望 matshow 输出有一个黑色边界框,但似乎我无法使用 edge_col
我正在使用 pyplot.matshow 绘制矩阵,并尝试使用 plt.gca().set_axisbelow(True) 使网格线显示在图后面,但它们始终处于打开状态顶部。如何在 matshow 后
想在matshow中看到比例尺,找了好久没找到答案。我怎么做? 代码很简单: def analyze_results(): l_points = [np.array([10, 9, -1]),
今天我尝试从我的分类模型中绘制混淆矩阵。 在一些页面中搜索后,我发现 pyplot 中的 matshow 可以帮助我。 import matplotlib.pyplot as plt from skl
我一个月前开始使用matplotlib,所以我还在学习。 我正在尝试用 matshow 做一个热图。我的代码如下: data = numpy.array(a).reshape(4, 4) cax =
我正在尝试可视化名称共现矩阵。这个版本工作正常: import pandas as pd import numpy as np import string import matplotlib.pypl
我有一个随时间变化的矩阵,我想将演化绘制成动画。 我的代码如下: import numpy as np import matplotlib.pyplot as plt from matplotlib
我已经很努力了,但我还是被 matplotlib 卡住了。请忽略,mpl 文档让我有点困惑。我的问题涉及以下方面: 我用 matshow 函数画了一个对称的 n*n 矩阵 D。行得通。 我想做同样的事
如何在这个例子中的子图之间没有空格? (如果我有更多行,请保持良好的可视化效果) 我已经看到我们所看到的可以随着 figsize 的值发生很大变化。 那么我们是否必须猜测 figsize 的“正确”值
基本上,我想制作类似下面的东西(三角形而不是通常用于 plt.matshow 的正方形)。 可以从四个二维数组开始,每个数组代表一组三角形的颜色值:右、左、下、上: import numpy as n
我正在尝试以宽高比 1 绘制 matshow,但是当我依赖建议的方法 here我在情节周围有一个无法摆脱的额外空间。解决办法是什么? import numpy as np from matplotli
我有一个二部图(1 和 0)的邻接矩阵以及该矩阵的双簇(行和列数组的数组)。如何使用 matplotlib matshow 为邻接矩阵中属于不同簇的元素(仅 1)设置不同的颜色? import num
我希望在热图中引入特定行/列之间的间隙,类似于 R 的 pheatmap gaps_row 或 gaps_col 参数。但粗略搜索后发现该功能似乎不可用。我考虑过通过创建具有特定尺寸的不同轴来模拟这种
我有一个代表网格的 6x6 矩阵。在该网格的一部分,我有一个较小的网格 (3x3),如下所示: In [65]: arr = np.zeros((6,6)) arr[0:3, 0:3] = 1 arr
我正在尝试在 Matplotlib 中使用 imshow 或 matshow 创建一个 10x10 网格。下面的函数将一个 numpy 数组作为输入,并绘制网格。但是,我希望数组中的值也显示在网格定义
我在 matplotlib 中使用 matshow(),生成的图形默认在顶部有 xticklabels。有没有办法将 xticklabels 放在底部? 感谢对此的任何帮助。/M 最佳答案 尝试执行以
我是一名优秀的程序员,十分优秀!