gpt4 book ai didi

python - 同一图上的多个二维直方图

转载 作者:行者123 更新时间:2023-12-04 17:17:02 25 4
gpt4 key购买 nike

我有这个脚本可以从图像和 roi 中提取数据。除了输出图表的结尾外,我的一切都完美无缺。基本上,我在处理两个直方图的窗口时遇到了问题。不管我是否更改网格大小、最小计数、图形大小或 x 和 y 限制,其中一个直方图总是会略微拉伸(stretch)。当我单独绘制它们时,它们不会被拉伸(stretch)。有没有办法让同一个地 block 上的六边形成为一致的“非拉伸(stretch)”形状?下面是我的图表和绘图方法。 (我省略了我的数据提取方法,因为它非常专业)。

plt.ion()
plt.figure(figsize=(16,8))
plt.title('2D Histogram of Entorhinal Cortex ROIs')
plt.xlabel(x_inputs)
plt.ylabel(y_inputs)
colors = ['Reds','Blues']
x = []
y= []
#image extraction code
hist1 = plt.hexbin(x[0],y[0], gridsize=100,cmap='Reds',mincnt=10, alpha=0.35)
hist2 = plt.hexbin(x[1],y[1], gridsize=100,cmap='Blues',mincnt=10, alpha=0.35)
plt.colorbar(hist1, orientation="vertical")
plt.colorbar(hist2, orientation="vertical")
plt.ioff()
plt.show()

enter image description here

最佳答案

这个问题可以通过使用 extent 设置 bin 的限制来解决。范围。这可以通过计算所有正在绘制的数据的最小和最大 x 和 y 值自动完成。在 gridsize 较小的情况下(例如 10),此方法可能会导致某些 bin 部分超出绘图限制。如果是这样,用 plt.margins 设置边距可以帮助显示绘图中的所有 bin。

import numpy as np               # v 1.20.2
import matplotlib.pyplot as plt # v 3.3.4

# Create a random dataset
rng = np.random.default_rng(seed=123) # random number generator
size = 10000
x1 = rng.normal(loc=5, scale=10, size=size)
y1 = rng.normal(loc=5, scale=2, size=size)
x2 = rng.normal(loc=-30, scale=5, size=size)
y2 = rng.normal(loc=-20, scale=5, size=size)

# Define hexbin grid extent
xmin = min(*x1, *x2)
xmax = max(*x1, *x2)
ymin = min(*y1, *y2)
ymax = max(*y1, *y2)
ext = (xmin, xmax, ymin, ymax)

# Draw figure with colorbars
plt.figure(figsize=(10, 6))
hist1 = plt.hexbin(x1, y1, gridsize=30, cmap='Reds', mincnt=10, alpha=0.3, extent=ext)
hist2 = plt.hexbin(x2, y2, gridsize=30, cmap='Blues', mincnt=10, alpha=0.3, extent=ext)
plt.colorbar(hist1, orientation='vertical')
plt.colorbar(hist2, orientation='vertical')
# plt.margins(0.1) # Uncomment this if hex bins are partially outside of plot limits

plt.show()

hexbin

关于python - 同一图上的多个二维直方图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68465387/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com