【问题标题】:Unsure how to make plt.hist2d actually return variables不确定如何使 plt.hist2d 实际返回变量
【发布时间】:2020-07-18 17:56:48
【问题描述】:

根据plt.hist2d 函数的文档,它应该绘制密度分布并返回三个变量:xedgesyedgeshh 应该是样本的二维直方图,例如绘制的二维数组。但是,当我使用这个函数时,它似乎认为我要求它返回三个以上的变量。我在跑步:

myHist, xedges, yedges = plt.hist2d(X, Y, bins=(np.linspace(-0.5,2,50),np.linspace(0,2.5,50)), cmap=plt.cm.Reds, cmin=1) 

并得到错误: ValueError: too many values to unpack (expected 3)

有什么建议吗?我正在使用python3。

【问题讨论】:

    标签: python matplotlib 2d histogram


    【解决方案1】:

    根据 hist2d 方法的documentation,它返回四个变量:hxedgesyedgesimage

    返回:

    h : 2D array 样本 x 和的二维直方图 是的。 x 中的值沿第一个维度和值进行直方图 在 y 沿第二个维度进行直方图。

    xedges : 一维数组 bin 沿 x 轴的边缘。

    yedges : 一维数组 bin 沿 y 轴的边缘。

    图像:QuadMesh

    【讨论】:

    • 谢谢@Harben。那么我真的应该使用 myHist, xedges, yedges, image = plt.hist2d(X, Y, bins=(np.linspace(-0.5,2,50),np.linspace(0,2.5,50)), cmap=plt.cm.Reds, cmin=1) 吗?那么我是否需要绘制图像(在这种情况下,plt.plot(image) 会工作吗?),还是应该只创建一个绘图而不需要绘制image?在功能上,imageh 有什么区别?
    • @user1093541 是的,您需要第四个变量才能使解包成功。在这种情况下,plt.show() 就足够了。
    猜你喜欢
    • 2013-07-22
    • 2018-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多