【问题标题】:Python - plot 2D probability distribution from vectors of different lengthPython - 从不同长度的向量绘制二维概率分布
【发布时间】:2016-04-01 15:16:00
【问题描述】:

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

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 方向上给出不同大小的“像素”,不是吗? 任何建议表示赞赏!

【问题讨论】:

    标签: python plot 2d probability-density


    【解决方案1】:

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

    【讨论】:

    • 非常感谢!这就是我一直在寻找的。干杯!
    【解决方案2】:

    x 和 y 的维度不同并没有错。大多数 2D 绘图的两个轴都不在同一维度上。 Matplotlib 应该可以很好地处理这个问题。当你绘制它时,你在一个点上取 x 和 y 的特定值,所以维度是相同的。

    【讨论】:

      最近更新 更多