Python - 从不同长度的矢量绘制2D概率分布

时间:2015-12-27 16:10:46

标签: python plot 2d probability-density

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

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)

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

我坚持认为x和y的尺寸不同。但实质上,这应该只是提供像素'在x和y方向上有不同大小,没有? 任何建议都表示赞赏!

2 个答案:

答案 0 :(得分:4)

你是说这种事吗? 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()

enter image description here

答案 1 :(得分:1)

x和y没有相同的维度是没有错的。大多数2D图不具有相同尺寸的两个轴​​。 Matplotlib应该处理这个问题。当您绘制它时,您在某个点上获取特定的x和y值,因此尺寸是相同的。