Wpis z mikrobloga

Siema, od jakiegoś czasu uczę się pythona, jakieś tam podstawy znam i postanowiłem zająć się czymś bardziej praktycznym. Chcę napisać skrypt którym będę mógł pobrać punkty z wykresu i zapisać je np. do pliku txt. Docelowo dane będą odtwarzane z wykresu zaimportowanego w postaci grafiki. Na razie walczę z pobieraniem danych z wykresu i spotkałem się z następującymi problemami:
1. będę potrzebował dodać sobie suwak którym będę dopasowywał zakres osi tak aby pasował on do wykresu zaimportowanego w postaci grafiki i tutaj mam problem ponieważ kiedy chcę zmienić zakres danych na osi X to kliknięcie jest zaliczane jako wybór punktu. Ma ktoś jakiś pomysł jak to rozwiązać? Na przykład najpierw dopasowuję wykres, zatwierdzam np. prawym klawisze myszy i zaczynam odtwarzać punkty.
2. drugi problem pojawia się gdy zamykam okno z wykresem, wywala mi błąd którego nie rozumiem :/. Chciałbym tego uniknąć ponieważ prawdopodobnie, docelowo, program nie będzie się jeszcze kończył.

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider, Button
# from scipy import interpolate

linepointsX = np.array([0])
linepoints
Y = np.array([0])
t = np.linspace(0, np.pi, 25, endpoint=True)
A = np.sin(t)
fig, plot = plt.subplots()

plot.plot(t,A, 'bo')
plt.subplotsadjust(left=0.25, bottom=0.25)

Range
ax = plt.axes([0.25, 0.1, 0.65, 0.03])

Xrangeslider = Slider(
ax=Range
ax,
label="X range",
valmin=np.pi/4,
valmax=2*np.pi,
valinit=np.pi,
orientation="horizontal"
)

def update(val):
plot.setxlim(right=Xrangeslider.val)
fig.canvas.drawidle()

Xrange
slider.onchanged(update)

resetx = plt.axes([0.8, 0.025, 0.1, 0.04])
button = Button(resetx, 'Reset')

def reset(event):
Xrange
slider.reset()

button.onclicked(reset)

def getpoint():
global linepoints
X
global linepointsY
while True:
E = np.array([0])
E = plt.ginput(n=1)
x = [i[0] for i in E]
y = [i[1] for i in E]

linepoints
X = np.append(linepointsX, x)
linepoints
Y = np.append(linepointsY, y)

plot.plot(linepoints
X, linepoints_Y, 'g-')
plt.draw()

getpoint()

plt.show()

#python #programowanie
  • 2