2016-04-17 4 views
0
ax3.bar(D, HighC_21, facecolor='g', width=0.8, alpha=1.0, align='edge') 
ax3.bar(D, LowC_21, bottom=HighC_21, color='r', width=0.8, alpha=1, align='edge') 

Я использую этот код для построения строки по оси x, но в начале и в конце есть неравномерное пространство. Как можно равномерно распределить бар по оси х?равномерное пространство между баром в matplotlib

enter image description here

ответ

1

Вы должны использовать первый вход в pyplot.bar указать позиции х каждого бара. В настоящее время вы используете значение D, поэтому строка должна появляться в каждой позиции x в D. Исходя из вашего вопроса, значения в D не там, где вы хотите, чтобы бары были.

Вам нужно будет изменить первый вход, чтобы быть (равномерно разнесенными) значениями, которые вы хотите. Вы можете легко сделать это с помощью numpy.linspace.

import numpy as np 

# Specify where you want the first and last bars as minX and maxX 
x = np.linspace(minX, maxX, len(LowC_21)) 
ax3.bar(x, HighC_21, facecolor='g', width=0.8, alpha=1.0) 
ax3.bar(x, LowC_21, bottom=HighC_21, color='r', width=0.8, alpha=1) 
Смежные вопросы