matplotlib/Pandas中的水平框图

Ame*_*ina 21 python matplotlib pandas

条形图:

matplotlib提供功能bar并barh做垂直和水平条形图.

方块图:

matplotlib还提供了功能boxplot做垂直箱线图.

而Pandas为垂直箱形图提供了自己的功能.

但在matplotlib或Pandas中有没有办法得到一个水平的盒子图?

unu*_*tbu 47

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()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我从评论(下面)看到制作横向盒子图的动机是标签相当长.在这种情况下的另一个选择可能是旋转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()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


小智 9

vert=False stands # for "no vertical"
Run Code Online (Sandbox Code Playgroud)

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