matplotlib
提供功能bar
和barh
来执行垂直和水平条形图。
matplotlib
还提供功能boxplot
来执行垂直框图。
Pandas为垂直框图提供了its own function。
但是在matplotlib或Pandas中有没有办法获得水平框图?
答案 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()
我从评论(下面)看到,制作水平方框图的动机是标签相当长。在这种情况下,另一种选择可能是旋转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()
答案 1 :(得分:0)
vert=False stands # for "no vertical"
使用by ='categorical_feature name'创建每个级别的框 plt.tight_layout()#杀死所有重叠的图(并非总是如此) 当您掌握Matplotlib和Pandas时,它们确实非常简单,并且可以使用它们进行功能强大的绘图。