python - 如何使用seaborn相对于行绘制多个条形图?

标签 python pandas seaborn

让我们考虑以下数据:

accuracies_in = ([0.5959219858156029, 0.5736842105263158, 0.5670212765957447, 0.3])
accuracies_out = [0.5, 0.6041666666666666, 0.2, 0.4]
auc_out = [0.5182608695652174, 0.6095652173913042, 0.5, 0.7]
algorithm = ["Logistic Regression", "Decision Tree", "Random Forest", "Neural Network"]
frame = pd.DataFrame([accuracies_in, accuracies_out, auc_out])
frame.index = ["accuracies_in", "accuracies_out", "auc_out"]
frame.columns = algorithm

using pandas.DataFrame.melt() with seaborn.barplot [duplicate]

我想要一个条形图来显示这三个特征( accuracies_inaccuarcies_outauc_out )的结果。换句话说,在条形图上,我想或多或少地对条形图进行分组:

Grouped seaborn.barplot from a wide pandas.DataFrame

第一组(第一行 - accuracy_in )将包含四个条 - accuracies_in 用于逻辑回归、决策树、随机森林和神经网络。第二组条形将再次包含四个条形,但这次是第二行 - accuracies_out 。最后 - 第三组条形将包含四个条形,每个条形中都有 auc_out

你能帮我看看该怎么做吗?我搜索了很多问题,但找不到任何可以绘制与行相关的条形图的内容。你能帮我解决这个问题吗?

最佳答案

您需要将数据帧转换为 long form ,使用pd.melt .

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

# frame: given dataframe

df = frame.melt(var_name='Algorithm', value_name='Accuracy', ignore_index=False)
sns.set()
sns.barplot(data=df, x=df.index, y='Accuracy', hue='Algorithm')

sns.barplot from long dataframe

关于python - 如何使用seaborn相对于行绘制多个条形图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71525359/

相关文章:

python - 从列表中删除包含日期的字符串,而不影响列表中的独立日期

python - Pandas Groupby 2 个数据框

python - python中有没有像r中的 `lag.plot1`这样的方法?

python - 分箱后无法访问数据帧的 groupby 对象的各个列

尝试循环查看股票收盘价时出现 Python 错误

python - 如何从字典中删除键和值 float

python - 如何从同一文件夹中的模块导入功能?

python - Pandas groupby 操作

python - Pandas 循环自定义日期(月年)到(月年+N)进行绘图

python - 子图的子图 Matplotlib/Seaborn