Python:在一个pann中创建多个boxplots

2024-10-02 16:28:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经使用R很长时间了,最近我正在学习Python。 我想在Python中在一个面板中创建多个方框图。 我的数据集是向量形式的,标签向量表示每个数据元素对应的框。示例如下:

 N = 50
 data = np.random.lognormal(size=N, mean=1.5, sigma=1.75)
 label = np.repeat([1,2,3,4,5],N/5)

从不同的网站(例如,matplotlib: Group boxplots),创建多个boxplots需要一个矩阵对象输入,其列包含一个boxplot的样本。所以我基于数据和标签创建了一个列表对象:

^{pr2}$

但是,下面的代码给了我一个错误:

 boxplot(savelist)

 Traceback (most recent call last):

 File "<ipython-input-222-1a55d04981c4>", line 1, in <module>
 boxplot(savelist)

 File "/Users/yumik091186/anaconda/lib/python2.7/site-packages/matplotlib/pyplot.py", line 2636, in boxplot
meanprops=meanprops, manage_xticks=manage_xticks)

 File "/Users/yumik091186/anaconda/lib/python2.7/site-packages/matplotlib/axes/_axes.py", line 3045, in boxplot labels=labels)

 File "/Users/yumik091186/anaconda/lib/python2.7/site-packages/matplotlib/cbook.py", line 1962, in boxplot_stats
stats['mean'] = np.mean(x)

 File "/Users/yumik091186/anaconda/lib/python2.7/site-packages/numpy/core/fromnumeric.py", line 2727, in mean
out=out, keepdims=keepdims)

 File "/Users/yumik091186/anaconda/lib/python2.7/site-packages/numpy/core/_methods.py", line 66, in _mean
ret = umr_sum(arr, axis, dtype, out, keepdims)

ValueError: operands could not be broadcast together with shapes (2,) (10,) 

有人能解释一下发生了什么吗?在


Tags: 数据inpymatplotliblibpackagesnpline
1条回答
网友
1楼 · 发布于 2024-10-02 16:28:52

你最终得到的是一个嵌套列表而不是一个平面列表。试试这个:

savelist = [data[label == 1]]
for i in [2,3,4,5]:
    savelist.append(data[label == i])

它应该会起作用的。在

相关问题 更多 >