【发布时间】:2021-03-03 19:02:26
【问题描述】:
条形图:
matplotlib 提供函数bar 和barh 来制作垂直和水平条形图。
箱线图:
matplotlib 还提供函数boxplot 来制作垂直箱线图。
而Pandas 为垂直 箱形图提供its own function。
但是在 matplotlib 或 Pandas 中是否有任何方法可以获得 水平 箱线图?
【问题讨论】:
标签: python matplotlib pandas
matplotlib 提供函数bar 和barh 来制作垂直和水平条形图。
matplotlib 还提供函数boxplot 来制作垂直箱线图。
而Pandas 为垂直 箱形图提供its own function。
但是在 matplotlib 或 Pandas 中是否有任何方法可以获得 水平 箱线图?
【问题讨论】:
标签: python matplotlib pandas
vert=False stands # for "no vertical"
使用 by='categorical_feature name' 为每个级别制作框 plt.tight_layout() # 杀死任何重叠的图(不总是) 当您掌握 Matplotlib 和 Pandas 时,它们真的很容易,并且您可以使用它们进行强大的绘图。
【讨论】:
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()
【讨论】:
"Age of pregnant women" 的内容。有什么想法吗?
plt.tight_layout()。
NumPy 和 Matplotlib 之上。 df 是 Pandas 数据框。这是 boxplot 方法调用 matplotlib 函数来构建箱线图。在后台,df.boxplot 调用 plt.boxplot。