Я использовал приведенный ниже код для создания прикрепленного графика. Моя проблема в том, что между двумя группами полос слишком много пустого пространства. Я знаю, что могу уменьшить зазор, увеличив ширину полосы, но это не то, что мне нужно. Мне нужно, чтобы ширина полосы оставалась такой же, как и на других графиках, которые я создал ранее.
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
sns.set()
sns.set_style("dark")
sns.set_style("whitegrid",{"xtick.major.size": 5})
sns.set(font_scale=1.2)
plt.figure(figsize=(2,6))
sns.set_style("darkgrid")
n_groups = 2
skip=[0.651]
skip.append(sum([0.819335,0.818205])/len([0.819335,0.818205]))
Glove=[0.655]
Glove.append(sum([0.768675,0.835844])/len([0.768675,0.835844]))
RNN=[0.629]
RNN.append(sum([0.768675,0.773007])/len([0.768675,0.773007]))
Global=[0.635]
Global.append(sum([0.759134,0.764281])/len([0.759134,0.764281]))
Cross=[0.665]
Cross.append(sum([0.768675,0.838481])/len([0.768675,0.838481]))
Dist=[0.61]
Dist.append(sum([0.753107,0.755493])/len([0.753107,0.755493]))
#Comparion of Brain Bench Vs Rest
fig, ax = plt.subplots()
index = np.arange(n_groups)
bar_width = 0.05
opacity = 1.0
#('Global Context', 'Skip-Gram', 'RNN', 'Cross-Lingual', 'Glove', 'Non-Distributional','Skip-Gram-Italian')
rects1 = plt.bar(index, skip, bar_width,
alpha=opacity,
color='#581845',
label='Skip-Gram')
rects2 = plt.bar(index + bar_width, Glove, bar_width,
alpha=opacity,
color='#FF5733',
label='Glove')
rects3 = plt.bar(index + bar_width + bar_width, RNN, bar_width,
alpha=opacity,
color='#000080',
label='RNN')
rects4 = plt.bar(index + bar_width + bar_width+bar_width, Global, bar_width,
alpha=opacity,
color='#800080',
label='Global Context')
rects5 = plt.bar(index + bar_width + bar_width+bar_width+bar_width, Cross, bar_width,
alpha=opacity,
color='#808000',
label='Cross-Lingual')
rects6 = plt.bar(index + bar_width + bar_width+bar_width+bar_width+bar_width, Dist, bar_width,
alpha=opacity,
color='#FFC300',
label='Non-Dist')
#algo = ('BrainBench','WS-353','WS-353-SIM', 'WS-353-REL','MEN','MTurk-771')
algo = ( 'BrainBench V1.0','BrainBench V2.0')
algo_len = np.arange(len(algo))
#plt.xticks(index + 0.15, ( 'BrainBench','WS-353','WS-353-SIM', 'WS-353-REL','MEN','MTurk-771'))
plt.xticks(index+bar_width, ( 'BrainBench V1.0','BrainBench V2.0'))
plt.ylim(0.55,0.88)
#sns.plt.title('2 vs. 2 Accuracy for Concrete/Abstract Words in Italian fMRI').set_fontsize('12')
sns.plt.title('Comparison of BrainBench Versions').set_fontsize('12')
sns.plt.ylabel('Correlation').set_fontsize('12')
plt.gcf().subplots_adjust(bottom=0.20)
plt.legend()
plt.tight_layout()
# plt.xticks(rotation=15)
#plt.show()
plt.savefig("/Users/Dhanush/Desktop/Versions.png", dpi=300)
Основной проблемой здесь является большой разрыв между двумя группами. Мне нужно, чтобы две группы были разделены одной шириной полосы
Вау, это много кода. Можете ли вы сократить его до минимального примера вашей проблемы?
Я внес изменения, предложенные @chriz, это весь код, необходимый для создания приведенного выше графика.
У людей здесь действительно есть культура минусовать, если они не знают ответа. Таких вопросов нет, и большинство даже не знает, как это сделать.