Skip to main content
 首页 » 编程设计

Python之从不同长度的向量绘制二维概率分布

2025年05月04日29mate10pro

我有两个不同长度的向量及其对应的概率。

import numpy as np 
 
x = np.arange(10)+1 
y = np.arange(15)+10 
px = np.random.normal(0.5,0.05,10) 
py = np.random.normal(0.5,0.05,15) 

我想制作一个 x 对 y 的 2D,其中平面根据 x 和 y 的概率着色。

我一直坚持 x 和 y 的维度不同这一事实。但本质上应该只是在 x 和 y 方向上给出不同大小的“像素”,不是吗? 任何建议表示赞赏!

请您参考如下方法:

你是说这种东西吗? extent=[x0, x1, y0, y1] 是一种覆盖坐标轴比例的方法,可在 this answer 中找到.可能有更好或更好的方法。

import numpy as np 
import matplotlib.pyplot as plt 
 
 
x = np.arange(10)+1 
y = np.arange(15)+10 
px = np.random.normal(0.5,0.05,10) 
py = np.random.normal(0.5,0.05,15) 
 
p = px[None,:]*py[:,None] 
 
plt.figure(figsize=[10,6]) 
 
plt.subplot(1,2,1) 
plt.imshow(p, origin='lower', extent=[1,10, 10,24]) 
plt.colorbar() 
 
plt.subplot(1,2,2) 
plt.imshow(p, cmap='gray', vmin=0.1, vmax=0.4, interpolation=None, 
           origin='lower', extent=[1,10, 10,24] ) 
 
plt.colorbar() 
 
plt.savefig("twoDp") 
 
plt.show()