【问题标题】:matplotlib violin plot weird input requirementmatplotlib小提琴情节奇怪的输入要求
【发布时间】:2019-03-29 23:03:37
【问题描述】:

为什么 matplotlib 中的小提琴图需要非标准输入?

最少的非工作示例

import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots(3, 1)
ax[0].plot([3, 4, 5])
ax[1].boxplot([3, 4, 5])
ax[2].violin([3, 4, 5])

生成前两个图,但第三个图出错:

TypeError: 'int' object is not subscriptable

以下命令都会报错

ax[2].violin([[3, 4, 5]])
ax[2].violin([[3], [4], [5]])
ax[2].violin(np.array([[3, 4, 5]]))
ax[2].violin(np.array([3, 4, 5]))
ax[2].violin([np.array([3, 4, 5])])
ax[2].violin([np.array([[3, 4, 5]])])
ax[2].violin([np.array([[3], [4], [5]])])

文档简单地说:

dataset : Array or a sequence of vectors.
    The input data.

我必须为这个函数输入什么格式,为什么不接受标准数据向量?

【问题讨论】:

    标签: python matplotlib violin-plot


    【解决方案1】:

    ax.violinplt.violinplot 不同。来自ax.violin的(实际)文档:

    ax.violin(vpstats, positions=None, vert=True, widths=0.5, showmeans=False, showextrema=True, showmedians=False)
    
    (...)
    
    vpstats : list of dicts
      A list of dictionaries containing stats for each violin plot.
    

    https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.violin.html

    【讨论】:

    • 哦……这对我来说太愚蠢了……谢谢!
    猜你喜欢
    • 1970-01-01
    • 2018-05-15
    • 2018-05-15
    • 1970-01-01
    • 2020-07-13
    • 1970-01-01
    • 1970-01-01
    • 2015-06-28
    • 2015-12-25
    相关资源
    最近更新 更多