У меня есть такой фрейм данных:
B6PO0510_S1C1 B6PO0510_S1C2 B6PO0510_S2C1 B6PO0510_S2C2 B6PO0510_S3C1 B6PO0510_S3C2 index1
44544 44544 44544 44544 44544 44544 250
30360 11438 26340 5260 4320 2071 500
26989 4737 52545 6857 4423 36060 750
4681 759 18236 29725 6208 80152 1000
944 520 3846 388 1971 43238 1250
2341 2098 1966 191 2955 7917 1500
4122 314 296 9 389 6989 1750
852 27 3469 336 1437 2356 2000
131 114 1966 30 251 1651 2250
82 658 184 1 14 3035 2500
4 21 8 4 40 860 2750
22 31 10 52 109 1912 3000
0 20 4 3 173 159 3250
55 8 1 262 396 596 3500
80 3 0 84 29 445 3750
0 4 234 0 68 5 4000
Я строю гистограмму с помощью радиокнопок. Вот мой код:
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.widgets import RadioButtons
df5=pd.read_excel(r'C:\YOIGO\text\graphs\hi.xlsx')
fig, ax = plt.subplots()
bars = ax.bar(np.array(df5.index1), height=np.array(df5['index1']), color='red', width=200)
ax.set_xticks((df5.index1))
ax.set_xticklabels(tuple(df5.index1))
plt.subplots_adjust(left=0.3)
axcolor = 'lightgoldenrodyellow'
rax = plt.axes([0.05, 0.7, 0.15, 0.15], facecolor=axcolor)
radio = RadioButtons(rax, df5.columns[:-1])
def hzfunc(label):
ydata = df5[label]
for b,y in zip(bars,ydata):
b.set_height(y)
plt.draw()
radio.on_clicked(hzfunc)
def onpick(event):
thisline = event.artist
xdata = thisline.get_xdata()
ydata = thisline.get_ydata()
ind = event.ind
print ('onpick points:', zip(xdata[ind], ydata[ind]))
fig.canvas.mpl_connect('pick_event', onpick)
plt.show()
Этот код дает мнеграфик, подобный следующему:

Значения на оси x перекрываются, и даже значения переключателей перекрываются на графике.Я хочу устранить это перекрытие и добавить значения для каждого бара.Могу ли я знать, как это сделать?