hist2d 中属于特定数据集的颜色 bin
Color bin in hist2d belonging to specific data set
我有许多不同的数据集 (x,y)
(具有不同的 counts/bin),我在 hist2d
的帮助下绘制了这些数据。所有 2D 直方图都具有相同的分箱。我正在寻找一种方法将所有这些都绘制在一个 hist2d
.
中
完成此操作的方法是:
- 为每个数据集分配一种颜色(例如:数据集 1 = 红色,数据集 2 = 蓝色,数据集 3 = 绿色,...)
- 比较每个数据集中的
[i,j]
个元素并从中获取最大值:
for i in range(len(ybins)-1):
for j in range(len(xbins)-1):
hist.T[i,j] = max([h1.T[i,j],h2.T[i,j],...,hn.T[i,j]])
- 如果最大值属于一个数据集,则用与数据集对应的颜色为该 bin 着色
我能够生成单独的 hist2d
(see here)。如您所见,每个位置都不同。
我最终想要的是:
我无法找到如何在这种情况下分别为每个箱子着色,或者如何为 hist2d
或 imshow
分配单一颜色。我找到了如何使用离散值定义自己的颜色栏,但是如何仅将颜色栏中的特定颜色传递给 hist2d
或 imshow
的参数?
如果你的直方图数组是a1
、a2
和a3
,例如:
from numpy import array, stack
h1 = array([[0, 10],
[0, 10]])
h2 = array([[20, 0],
[20, 0]])
h3 = array([[0, 0],
[30, 30]])
先把它们叠起来:
hist = stack([h1, h2, h3])
然后用argmax
得到栈中每一项最大值的数组索引:
hist_index = hist.argmax(axis=0)
这将为您提供以下数组:
array([[1, 0],
[2, 2]])
我有许多不同的数据集 (x,y)
(具有不同的 counts/bin),我在 hist2d
的帮助下绘制了这些数据。所有 2D 直方图都具有相同的分箱。我正在寻找一种方法将所有这些都绘制在一个 hist2d
.
完成此操作的方法是:
- 为每个数据集分配一种颜色(例如:数据集 1 = 红色,数据集 2 = 蓝色,数据集 3 = 绿色,...)
- 比较每个数据集中的
[i,j]
个元素并从中获取最大值:
for i in range(len(ybins)-1):
for j in range(len(xbins)-1):
hist.T[i,j] = max([h1.T[i,j],h2.T[i,j],...,hn.T[i,j]])
- 如果最大值属于一个数据集,则用与数据集对应的颜色为该 bin 着色
我能够生成单独的 hist2d
(see here)。如您所见,每个位置都不同。
我最终想要的是:
我无法找到如何在这种情况下分别为每个箱子着色,或者如何为 hist2d
或 imshow
分配单一颜色。我找到了如何使用离散值定义自己的颜色栏,但是如何仅将颜色栏中的特定颜色传递给 hist2d
或 imshow
的参数?
如果你的直方图数组是a1
、a2
和a3
,例如:
from numpy import array, stack
h1 = array([[0, 10],
[0, 10]])
h2 = array([[20, 0],
[20, 0]])
h3 = array([[0, 0],
[30, 30]])
先把它们叠起来:
hist = stack([h1, h2, h3])
然后用argmax
得到栈中每一项最大值的数组索引:
hist_index = hist.argmax(axis=0)
这将为您提供以下数组:
array([[1, 0],
[2, 2]])