matplotlib/Pandas中的水平箱线图

ymdaylpp  于 2023-08-06  发布在  其他
关注(0)|答案(4)|浏览(96)

条形图:

matplotlib提供了barbarh函数,用于绘制垂直水平条形图。

箱形图:

matplotlib还提供了boxplot函数来绘制垂直箱线图。
Pandas垂直箱形图提供its own function
但是在matplotlib或Pandas中有没有办法得到一个水平箱线图?

v64noz0r

v64noz0r1#

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()


nbewdwxp

nbewdwxp2#

vert=False stands # for "no vertical"

字符串
使用by='categorical_feature name'为每个级别的plt制作框。tight_layout()#杀死任何重叠的图(并不总是)Matplotlib和Pandas非常容易当你掌握它们的时候,你可以使用它们做强大的图。

hl0ma9xz

hl0ma9xz3#

matplotlib有一个vert属性,默认设置为True。修改为False

plt.boxplot(df["feature"], vert=False)

字符串

xdnvmnnf

xdnvmnnf4#

可以用这个例子试试

import matplotlib.pyplot as plt

a = [10,20,30,40,50,60]
plt.xlabel("value")
plt.ylabel("value")

plt.boxplot(a,vert=False)
plt.show()

字符串

相关问题