【问题标题】:How to get grouped bar plots?如何获得分组条形图?
【发布时间】:2020-09-11 18:48:43
【问题描述】:

我是 seaborn 新手,我正在尝试绘制条形图。我正在从 csv 文件导入数据。我希望条形宽度小,并为单个类别分组/连接。但是,我在这些图表之间得到了很多空间。有没有办法可以解决上述问题。请注意,我的 y 轴范围是 80 到 100,我需要保持这一点。

我正在使用的当前代码是:

import seaborn as sns; sns.set()
import matplotlib.pyplot as plt
import pandas as pd
Data=pd.read_csv('S_Data.csv')
plt.figure(figsize=(20,5))
ax = sns.barplot(x="Techniques on data", y="Test Accuracy", hue="Epochs",  order = ['WNO + FIFO', 'WNO', 'WNO + on_combined data', 'WNO + replace with gsd'], palette="Blues_d", data=Data)

def change_width(ax, new_value) :
    for patch in ax.patches :
        current_width = patch.get_width()
        diff = current_width - new_value

        # we change the bar width
        patch.set_width(new_value)

        # we recenter the bar
        patch.set_x(patch.get_x() + diff * .5)
change_width(ax, .10)
ax.set_ylim(80,100)
ax.set_title('Result')

提前致谢。

【问题讨论】:

  • 如果你不使用你的函数来改变条的宽度会发生什么?结果怎么不满意?
  • 不改变宽度的原图宽度变得非常大。这看起来更好。但希望他们归为一类。

标签: python matplotlib bar-chart data-visualization seaborn


【解决方案1】:

考虑使用countplot 而不是barplot 函数。 [link]。我相信,根据您的hue="Epochs",您将能够在不使用附加功能的情况下实现更纤细的条形样式。

【讨论】:

    猜你喜欢
    • 2021-10-06
    • 1970-01-01
    • 1970-01-01
    • 2014-06-29
    • 2023-01-21
    • 2014-04-13
    • 2018-01-06
    • 2018-05-27
    相关资源
    最近更新 更多