Matplotlib — исправление гистограммы с использованием подграфиков и вставкой меток для каждого столбца.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Matplotlib — исправление гистограммы с использованием подграфиков и вставкой меток для каждого столбца.

Сообщение Anonymous »

Я создаю гистограмму с помощью следующего кода. Я получаю нужный мне текст, но его формат неверен из-за совпадения заголовков и части первого подзаголовка. Подскажите, пожалуйста, как это исправить?. Я приложил изображение полученного результата.
С уважением.
P.S.: Я заметил, что второй и третий- последние столбцы «темнее» остальных. Есть ли у вас идеи, почему это может происходить?
Изображение

# Functions to graph

font='Arial'

fig, (ax1, ax2) = mtpb.pyplot.subplots(2,figsize=(12,6), sharex=True,
squeeze=True)

fig.suptitle('LF Results',fontweight ='bold', fontname=font, fontsize = 12)

voltagespu= [98.66,95.88,95.88,100.0,97.35,100.98,99.23,97.59,99.85,97.35,100.0,101.15,99.28,101.0,99.69,99.59,96.63,100.33,100.33,100.0,100.0]
nodes=[Bus1,Bus2,Bus2,Bus3,Bus5,Bus6,Bus7,Bus9,Bus23A,LVBus,Main,Bus,MCC1,Sub2A,Sub2B,Sub,3,Sub3,Swgr,Sub22,Sub23,Sub23,UPS-1,VFD2]
angles=[-0.75,-0.84,-0.84,0.22,-2.15,0.43,-1.04,-1.01,-2.83,-2.15,0.0,-1.38,-1.04,0.44,-0.02,-0.05,-3.03,-0.86,-0.86,0.0,0.0]
voltagekV=[0.474,0.46,0.46,4.16,0.467,13.935,13.694,4.06,0.479,0.467,34.5,0.486,13.7,13.938,4.147,4.143,3.334,3.461,3.461,0.48,3.45]

for i in range(len(voltagespu)):

ta='Voltage [pu] = {:.3f} [%] \nVoltage [kV] = {:.3f} [kV]'.format(voltagespu, voltagekV)
textp.append(ta)

ax1.set_ylim(0, 110)

graphbar=ax1.bar(nodes, voltagespu, width=widthRect, edgecolor ='silver',
label='Voltages', align='center', color='darkgrey', alpha=0.35,
linewidth=1)
ax1.bar_label(graphbar,labels=textp, fontsize = 6,rotation=90, fontname=font,
padding=-1)
ax1.axhline(y=105, color='red', linestyle='--', linewidth=1.2,
label='Upper tolerable limit')
ax1.axhline(y=95, color='darkgreen', linestyle=':', linewidth=1.2,
label='Lower tolerable limit')

ax1.set_title('LF Voltages', fontsize = 10, fontweight ='bold', fontname=font)
ax1.set_ylabel('Voltage \n [p.u. %]', fontweight ='bold',
fontsize = 8, fontname=font)
ax1.tick_params(axis='both', labelsize = 6, color='blue', labelcolor='blue')

ax1.grid(axis = 'x', color = 'blue', linestyle = 'dotted',
linewidth = 0.75, alpha=0.5)
ax1.grid(axis = 'y', color = 'gray', linestyle = '-',
linewidth = 0.25, alpha=0.6)

ax1.legend(fontsize = 6, ncols=3)

##############################################################################
##############################################################################
## Second Graph

ax2.bar(nodes, angles, width=widthRect, edgecolor ='silver',
label='Voltages', align='center', color='darkgrey', alpha=0.35,
linewidth=1)

ax2.set_title('Voltages Angles', fontsize = 10, fontweight ='bold', fontname=font)
ax2.set_ylabel('Angles \n [deg]', fontweight ='bold',
fontsize = 8, fontname=font)
ax2.tick_params(axis='both', labelsize = 6, color='blue', labelcolor='blue')

ax2.set_xlabel('Nodes', fontweight ='bold', fontsize = 8, fontname=font)
ax2.set_xticklabels(nodes, fontsize = 6, rotation=60, ha='right', fontname=font)

ax2.grid(axis = 'x', color = 'blue', linestyle = 'dotted',
linewidth = 0.75, alpha=0.5)
ax2.grid(axis = 'y', color = 'gray', linestyle = '-',
linewidth = 0.25, alpha=0.6)
ax2.legend(fontsize = 6)

plt.show()


Подробнее здесь: https://stackoverflow.com/questions/793 ... r-each-bar
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»