首页 > 解决方案 > 在python中创建具有正确x轴的箱线图

问题描述

我正在尝试根据气缸数制作 mpg 自动数据的箱线图。这是我的代码

cyls = list(set(np.array(auto.cylinders)))
data = []
for val in cyls:
    d = np.array(auto.loc[auto['cylinders'] == val].mpg)
    data.append(d)
fig, ax = plt.subplots()
ax.boxplot(data, positions = cyls);

这是在一个 jupyter 笔记本中完成的。它工作得很好,但感觉像是一种迂回的解决方案,特别是因为这在 R 中显然要容易得多。有没有更简洁的方法来做到这一点?

标签: pythonmatplotlibjupyter

解决方案


看起来您的解决方案中最迂回的部分是 for 循环。我理解这种痛苦,因为 MATLAB 也有访问数组元素的简洁方法。

看起来您可以通过将 for-loop 替换为以下内容来使您的解决方案更加简洁:

data = [ auto[i].mpg for i in indices]

其中indices是每辆汽车所需的索引数组。

(请参阅访问列表中的多个元素,了解它们的索引

但是根据您设置auto对象的方式,您可以简单地使用

data = list(set(np.array(auto.mpg)))

得到相应的mpg值。


推荐阅读