28

条形图:

matplotlib提供功能barbarh进行垂直水平条形图。

箱形图:

matplotlib还提供了boxplot垂直箱线图的功能。

Pandas为垂直箱图提供了自己的功能。

但是在 matplotlib 或 Pandas 中有什么方法可以获得水平箱线图吗?

4

2 回答 2

66

matplotlibboxplot(..., vert=False)制作水平箱线图。关键字参数vert=False也可以传递给DataFrame.boxplot

import matplotlib.pyplot as plt
import pandas as pd
x = [[1.2, 2.3, 3.0, 4.5],
     [1.1, 2.2, 2.9, 5.0]]
df = pd.DataFrame(x, index=['Age of pregnant women', 'Age of pregnant men'])

df.T.boxplot(vert=False)
plt.subplots_adjust(left=0.25)
plt.show()

在此处输入图像描述

我从评论(下面)中看到,制作水平箱线图的动机是标签相当长。在这种情况下,另一个选择可能是旋转 xticklabels:

import matplotlib.pyplot as plt
import pandas as pd
x = [[1.2, 2.3, 3.0, 4.5],
     [1.1, 2.2, 2.9, 5.0]]
df = pd.DataFrame(x, index=['Age of pregnant women', 'Age of pregnant men'])

df.T.boxplot()
plt.subplots_adjust(bottom=0.25)
plt.xticks(rotation=25)
plt.show()

在此处输入图像描述

于 2013-08-28T23:42:15.800 回答
6
vert=False stands # for "no vertical"

使用 by='categorical_feature name' 为每个级别制作框 plt.tight_layout() # 杀死任何重叠的图(并非总是如此) Matplotlib 和 Pandas 非常容易掌握它们,并且可以使用它们制作强大的图。

于 2019-05-11T07:37:30.883 回答