从字典中创建同一图表上的多个箱线图

30

我正在尝试创建一个图表,其中x轴是字典的键,箱线图是字典内部信息的表示。 我的字典可以有很多键。

Data = {'ABC': [34.54, 34.345, 34.761], 'DEF': [34.541, 34.748, 34.482]}
    
for ID in Data:      
        plt.boxplot(Data[ID])
        plt.xlabel(ID)
plt.savefig('BoxPlot.png')
plt.clf()

然而,它似乎将箱线图放在彼此上面。我尝试在boxplot中迭代位置值,但没有成功。如果可能的话,我还想使用密钥作为每个boxplot的x轴值。


为了避免那些愿意回答你问题的人做不必要的工作,请提供一个最小化、完整化和可验证化的示例。特别是,请提供玩具数据集(你所引用的字典)。 - Diziet Asahi
也许这个例子可以回答你的问题:https://matplotlib.org/gallery/statistics/boxplot_demo.html - Moberg
2个回答

58
my_dict = {'ABC': [34.54, 34.345, 34.761], 'DEF': [34.541, 34.748, 34.482]}

fig, ax = plt.subplots()
ax.boxplot(my_dict.values())
ax.set_xticklabels(my_dict.keys())

这里输入图片描述


1
在Jupyter笔记本中,我收到了一个警告 <ipython-input-94-a3fad8ec34c0>:5: UserWarning: FixedFormatter应该只与FixedLocator一起使用 ax.set_xticklabels(my_dict.keys()) - thrau

0

labels=参数可用于设置x轴标签。

my_dict = {'ABC': [34.54, 34.345, 34.761], 'DEF': [34.541, 34.748, 34.482]}
plt.boxplot(my_dict.values(), labels=my_dict.keys());

如果它是一个Pandas数据框,标签也会自动应用。
df = pd.DataFrame(my_dict)
df.plot(kind='box');

result


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接