【问题标题】:matplotlib - violinplot ValueError with empty listsmatplotlib - violinplot ValueError 与空列表
【发布时间】:2016-02-22 16:17:07
【问题描述】:

当我尝试使用 matplotlib 绘制“小提琴图”时,出现以下 ValueError。

ValueError: 零大小数组到没有标识的归约操作最小值

axes[0].violinplot([[1,2,3],[],[2,3,4]])

我希望左右两边画两个小提琴图,中间画一些东西来代表无效项。

我应该怎么做才能克服这个问题?

【问题讨论】:

    标签: python matplotlib violin-plot


    【解决方案1】:

    您可以检查列表是否为空,如果是,则将其替换为 NaN 列表:

    from matplotlib import pyplot as plt
    
    vals = [[1, 2, 3], [], [2, 3, 4]]
    nans = [float('nan'), float('nan')] # requires at least 2 nans
    
    plt.violinplot([val or nans for val in vals])
    plt.show()
    

    这不是一个真正优雅的选择,但它确实有效..

    【讨论】:

    • 不知何故,我得到了'ValueError:具有多个元素的数组的真值不明确。 ' .使用[ val if val.any() else nans for val in vals ] 让我很开心。
    猜你喜欢
    • 1970-01-01
    • 2021-03-28
    • 2022-01-12
    • 2020-10-17
    • 1970-01-01
    • 2019-05-06
    • 1970-01-01
    • 2019-12-10
    • 2021-10-29
    相关资源
    最近更新 更多