python - 如何制作按轴 1 分组的箱线图

标签 python matplotlib seaborn boxplot

我有数据框:

id  meters  availability1   availability2   availability3
0   0   70  80  90
1   50  75  75  80
2   100 100 90  100
3   150 87  85  80
4   200 60  90  100

我想创建一个箱线图,显示每个特定仪表的可用性。 例如,0 米的可用性为 90 到 70。 所以我想为每一行而不是列创建箱线图。我找不到如何应用它而不改变我的数据框的结构。

我使用的代码如下:

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

file = 'D:\\test_box_plot.csv'
df = pd.read_csv(file, sep = ";", usecols = ['availability1','availability2','availability3'])


sns.boxplot(x="variable", y="value", data=pd.melt(df))

plt.show()

我将不胜感激任何帮助

最佳答案

我认为这是一个可能的解决方案,但我不太确定我是否理解你想要的:

 boxMeters = sns.boxplot(x=0,y=1,data=df.transpose(), palette="Set3")

这里的技巧是使用数据帧的转置矩阵。 我建议您打印转置的数据框以了解如何引用每一列。

根据您发布的数据,我的转置数据框是:

                0   1    2    3    4
id              0   1    2    3    4
meters          0  50  100  150  200
availability1  70  75  100   87   60
availability2  80  75   90   85   90
availability3  90  80  100   80  100

“meters”就在地址为 0 的列下方,availability1 是第 1 列。 你告诉我它是否适合你。

关于python - 如何制作按轴 1 分组的箱线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58007935/

相关文章:

python 2.7 re.MULTILINE 问题

python - 清除 QListWidget 中的选择

python - 如何等到matplotlib动画结束?

pandas - 从 bool 字段绘制条形图 :

python - 更改 seaborn 热图的 xticklabels 字体大小

python - 在 discord.py 中更改昵称会引发错误

python - 如何在 Python 中获取处理器名称?

Python Matplotlib 事件处理 : interaction with pan/zoom

python - 使用 hexbin 的 Pairplot

python - 使用 Seaborn 和 Pandas Dataframe 绘制分割 fiddle 图很困难