- 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/
我想要类似于以下伪代码的东西: while input is not None and timer = 5: print "took too long" else: print inp
如何将 MainEngine Observable 转换为 Cold?来自这个例子: public IObservable MainEngine { get
自从手表被发明以来,表盘的方圆之争就始终没有停下来过,在漫长的岁月中,无论是方形还是圆形表盘,人们都为其寻找到足够多的设计元素,让其肆意成长,这种生机与活力后来也延续到了智能手表上,在2014年,这
我正在学习 CUDA,试图解决一些标准问题。例如,我正在使用以下代码求解二维扩散方程。但我的结果与标准结果不同,我无法弄清楚。 //kernel definition __global__ void
我的 Web 应用程序使用 native dll 来实现其部分功能(其位置在 PATH 中提供)。一切正常,直到我对 WAR 进行更改并且 JBoss 热部署此 WAR。此时dll已经找不到了,需要手
我看到这个问题here 。这是关于实现每个发出的项目的延迟。这是根据accepted answer如何实现的: Observable.zip(Observable.range(1, 5) .g
我最近一直在进行冷迁移...这意味着我无法在进行迁移时从应用程序级别读取/写入数据库(维护页面)。 这样就不会因为更改结构而发生错误,而且如果负载很大,我也不希望 mysql 在迁移过程中崩溃。 我的
我是一名优秀的程序员,十分优秀!