【发布时间】: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