Я пишу код для сохранения местоположения щелчка мыши на графиках, отображаемых в цикле for.После отображения графика блокнот matplotlib в jupyter отображает местоположения x и y, наведя курсор на график.Затем пользователь нажимает на график, чтобы выбрать интересующие x и y, которые должны быть сохранены.
Я написал следующий код для получения приведенного выше описания.
import numpy as np
from IPython import display
from IPython.display import clear_output
plt.close("all")
colour=['blue','red','green','black','magenta']
for num in range(len(df_save)):
listed=[]
for car,models in cars.items():
import matplotlib.pyplot as plt
%matplotlib notebook
fig = plt.figure()
ax = fig.add_subplot(111)
i=0
for model in models.items():
ax.plot(df_car[car+model][(df_car[car+model+'_Vel']<=df_save['VEL_MAX'][num]) & (df_car[car+model+'_Vel']>=df_save['VEL_MIN'][num])],
df_car['emission'][(df_car[car+model+'_Vel']<=df_save['VEL_MAX'][num]) & (df_car[car+model+'_Vel']>=df_save['VEL_MIN'][num])],color=colour[i])
ax.set_ylim(-0.15,1.25)
ax.set_title(car,fontsize=20,family='serif', color='black')
i=i+1
plt.show()
ques=input('Do you want to store components for this? ')
if ques=='Y':
ques1=input('Enter the number of components: ')
coords = []
def onclick(event):
global ix, iy
ix, iy = event.xdata, event.ydata
print ('x = %f, y = %f'%(ix, iy))
global coords
coords.append(ix, iy)
if len(coords) == ques1:
fig.canvas.mpl_disconnect(cid)
return coords
cid=fig.canvas.mpl_connect('button_press_event', onclick)
df_save['COMPONENTS'][num]=coords
else:
continue
Проблема
Когда программа запущена, графики не содержат никаких данных, как видел здесь .Я хотел бы знать, что здесь не так, и найти решение, которое поможет достичь цели.