matplotlib / Pandas中的水平框图

时间:2013-08-28 23:36:33

标签: python matplotlib pandas

条形图:

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

方块图:

matplotlib还提供功能boxplot来执行垂直框图。

Pandas垂直框图提供了its own function

但是在matplotlib或Pandas中有没有办法获得水平框图?

2 个答案:

答案 0 :(得分:37)

matplotlib的boxplot(..., 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()

enter image description here

我从评论(下面)看到,制作水平方框图的动机是标签相当长。在这种情况下,另一种选择可能是旋转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()

enter image description here

答案 1 :(得分:0)

vert=False stands # for "no vertical"

使用by ='categorical_feature name'创建每个级别的框     plt.tight_layout()#杀死所有重叠的图(并非总是如此) 当您掌握Matplotlib和Pandas时,它们确实非常简单,并且可以使用它们进行功能强大的绘图。