【问题标题】:Seaborn box plot broken after update to 0.6.0Seaborn 箱线图在更新到 0.6.0 后损坏
【发布时间】:2015-09-19 06:45:52
【问题描述】:

我最近将我的 seaborn 从 0.5.1 更新到了新的 0.6.0 版本。我一直在使用 seaborn 在 python notebook 中制作箱线图和小提琴图,现在我似乎无法再让我的代码工作了。 Matplotlib plt.boxplot 仍然适用于我的数据。特别是,当我有一组子集大小不同的列表或数组时,问题似乎就会发生。

例如:

import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
x = np.array([1,3,4]), ([1,2])
plt.boxplot(x) #this works



 import numpy as np
 import matplotlib.pyplot as plt
 import seaborn as sns
 x = np.array([1,3,4]), ([1,2])
 sns.boxplot(x) #doesn't work

这是我在尝试 seaborn 箱形图时遇到的错误

ValueError: 箱线图统计列表和“位置”值必须 长度一样

在新的 seaborn 教程中,它说 sns.boxplot 应该采用 plt.boxplot 所做的一切。有没有人在更新时遇到同样的问题?有没有办法使这项工作?如果没有,有没有办法同时安装0.6.0版本和0.5.1版本并在某些笔记本中调用特定版本?

【问题讨论】:

    标签: matplotlib boxplot seaborn violin-plot


    【解决方案1】:

    正如release notes 中所讨论的,分类图的 API 已经发生了一些变化。

    在您的情况下,您只需将数组列表(从技术上讲是元组)显式传递给 data 参数:

    sns.boxplot(data=x)
    

    【讨论】:

    • 谢谢!这行得通。有没有办法为值添加 x 标签?我也做不到。
    • 如果使用 DataFrame,列名将用作标签。在此处查看大量示例:stanford.edu/~mwaskom/software/seaborn/generated/…
    • 谢谢。对于列表,我只是想我可以使用: x = np.array([1,3,4]), ([1,2]) box=sns.boxplot(data=x) box.set_xticklabels(['a ','b'])
    猜你喜欢
    • 1970-01-01
    • 2019-09-03
    • 2015-12-19
    • 1970-01-01
    • 2021-06-14
    • 2017-05-14
    • 1970-01-01
    • 1970-01-01
    • 2021-03-08
    相关资源
    最近更新 更多