Как добавить пространство между 2 барами Python - PullRequest
1 голос
/ 29 октября 2019

Я пытался добавить пробел между 2 барами plot.bar ([значение для значения в диапазоне (len (y)) + 0,25], z, ширина = 0,4), но он показывал ошибку «невозможно преобразовать список в float»

x = x[xleftpos:xrightpos]
y = y[xleftpos:xrightpos]
z = z[xleftpos:xrightpos]


plot.bar([value for value in range(len(x))],y,width=0.4,)

plot.bar([value for value in range(len(x))], z, width=0.4)
plot.set_xticks([idx + 0.5 for idx in range(len(x))])
plot.set_xticklabels(x, rotation=35, ha='right', size=10)
xlocs = [idx + 0.5 for idx in range(len(x))]
for i, v in enumerate(y):
    plt.text(xlocs[i] - 0.99, v - 0.98, str(v))

plt.show()

enter image description here

1 Ответ

0 голосов
/ 29 октября 2019

Хотите разделить полосы по горизонтали или по вертикали? Для вертикального разделения используйте `bottom:

plt.bar(range(5), range(5))
plt.bar(range(5), range(-5,0), bottom=-0.25)

Выход:

enter image description here

Также, как вы можете заметить, вы можете сделатьplt.bar(range(len(x)), y) без понимания списка.

Для горизонтального сдвига:

plt.bar([x+.25 for x in range(5)], range(5))
plt.bar(range(5), range(-5,0), bottom=-0.25)

Вы также можете использовать np.arange(5) + 0.25:

plt.bar(np.arange(5) + 0.25, range(5))
plt.bar(range(5), range(-5,0), bottom=-0.25)

Выход:

enter image description here

...