Python,Matplotlib:当数据是独立的时,在3d图中绘制垂直线

时间:2016-08-01 17:45:15

标签: python matplotlib plot 3d

我在(x,y)平面上有一个随机漫步者,在(x,y,z)平面上有一个-log(双变量高斯)。这两个数据集基本上是独立的。

我想对5(x,y)对随机游走者进行采样,并沿z轴绘制垂直线,并在“满足”双变量高斯时终止垂直线。

到目前为止,这是我的代码:

// PERFORM VALIDATION CHECKS
$("form").submit(function()
                 {
  // LOOP THROUGH ALL INPUT FIELDS
  $("form input, form textarea, form select").each(function()
                                                   {
    // IF NONE OF THE INPUT'S PARENTS ARE HIDDEN
    if($(this).parents(":hidden").length == 0)
    {
      var thisValue = $(this).val();
      var checkWhat = $(this).attr("check");
      var checkArray = checkWhat.split(",");
      for(var i=0; i<checkArray.length; i++)
      {
        switch(checkArray[i])
        {
          case "blank": alert(CheckBlank(thisValue)); break;
          case "nric": alert(ValidateNRIC(thisValue)); break;
          case "email": alert(ValidateEmail(thisValue)); break;
        }
      }
    }
  });
});

哪个产生

enter image description here

正如你所看到的那样,我唯一要努力的是如何在满足适当的Z值时终止垂直线。欢迎任何想法!

1 个答案:

答案 0 :(得分:5)

您目前只使用[0,10]作为z坐标,让这些线条达到10的高度。您可以将循环更改为以下内容:

for i in range(5):
    x = [M[i,0], M[i,0]]
    y = [M[i,1], M[i,1]]
    z = [0,-np.log(bivariate_normal(M[i,0],M[i,1]))]
    ax.plot(x,y,z,'k--',alpha=0.8, linewidth=0.5)

这将为您循环的每个点获取x和y坐标,并计算该点上覆高斯的高度并绘制到那里。这是一个改变了线条样式的图,以强调与问题相关的线条:

enter image description here