Mir ist aufgefallen, dass alle Funktionen ganz normal geplottet werden bis eben die gebrochenrationalen.
Wieso weiß ich nicht und ich hoffe ihr könnt mir helfen.
hier die Formelanalysegeschichte:
Code: Alles auswählen
def formel_analysieren(self, genauigkeit, startwert, endwert):
self.x = np.arange(float(startwert),float(endwert),float(genauigkeit))
x = self.x
formula_raw = self.entry_funktion.get().replace('e^x', 'exp(x)')
formula_raw_exp = formula_raw.replace('e^', 'exp')
formula_list = re.split('(\W)', formula_raw_exp)
formula_replace = [REPLACE_DIC.get(item,item) for item in formula_list]
self.formula_finish = ''.join(formula_replace)
form = parser.expr(self.formula_finish).compile()
try:
self.y = eval(form)
self.legend = self.entry_funktion.get()
except NameError:
self.y = np.sin(self.x)
self.legend = 'sin(x)'
return (self.x,self.y,self.legend)
def plotten(self):
self.formel_analysieren(self.get_genauigkeit(),self.get_startwert(),self.get_endwert())
plt.clf()
plt.plot(self.x,self.y, label=self.legend)
plt.grid('on')
plt.xlabel('x - Achse')
plt.ylabel('y - Achse')
legend = plt.legend()
legend.draggable(state=True)
plt.gcf().canvas.draw()
def get_genauigkeit(self):
if self.entry_genauigkeit.get() is "":
return 0.01
else:
return self.entry_genauigkeit.get()
def get_startwert(self):
if self.entry_startwert.get() is "":
return -5
else:
return self.entry_startwert.get()
def get_endwert(self):
if self.entry_endwert.get() is "":
return 5
else:
return self.entry_endwert.get()