Найти - Пользователи
Полная версия: Построение окна для ввода функций графиков
Начало » Python для новичков » Построение окна для ввода функций графиков
1
Kyurem_BoG
Есть программа которая стоит графики. Но мне надо сделать так чтобы я вводил функцию в окно ввода, и потом она строилась по нажатию на кнопку. Не совсем понимаю как это сделать. Так же у меня не строятся графики tan, atan, и другие кроме cos, sin, log, и xp. Так же не строятся графики вида 1/x
import numpy as np
import matplotlib.pyplot as plt
x=np.arange(-10,10.01,0.01)
plt.plot(x,np.sin(x),x,np.cos(x),x,-x)
plt.xlabel(r'$x$')
plt.ylabel(r'$f(x)$')
plt.title(r'$f_1(x)=\sin(x),\ f_2(x)=\cos(x),\ f_3(x)=-x$')
plt.grid(True)
plt.show()
Kyurem_BoG
Ни кто не знает что ли?
py.user.next
Kyurem_BoG
Но мне надо сделать так чтобы я вводил функцию в окно ввода
Окно ввода у тебя как-то не наблюдается. Используй PyQt, чтобы сделать окно ввода. Но вводиться всё равно будет простой текст, который надо распознать и отнести к определённой функции. Поэтому всё это можно сделать в консоли поначалу, так как текст в консоли и текст в графическом окне будет распознаваться одинаково. А для распознавания текста нужно разработать алгоритм. Если попроще разрабатывать, то он должен принимать только точные написания функций, а на все остальные выдавать сообщение об ошибке при вводе.
doza_and
Kyurem_BoG
Ни кто не знает что ли?
Так вы ничего не спрашивали. Одна констатация фактов и ни одной просьбы.
py.user.next
Используй PyQt, чтобы сделать окно ввода
Ну не обязательно. в матплотлибе в доках есть пример построения разных графиков при выборе пункта меню или нажатии кнопок. ТС мог все просто скопипастить. Надо только доки открыть.
py.user.next
doza_and
есть пример построения разных графиков при выборе пункта меню или нажатии кнопок
Я нашёл пример с текстовым полем, но у себя его запустить не смог, так как нет текстового поля.
  
>>> import matplotlib.widgets
>>> dir(matplotlib.widgets)
['AxesWidget', 'Button', 'CheckButtons', 'Circle', 'Cursor', 'Lasso', 'LassoSelector', 'Line2D', 'LockDraw', 'MultiCursor', 'RadioButtons', 'Rectangle', 'RectangleSelector', 'Slider', 'SpanSelector', 'SubplotTool', 'Widget', '__builtins__', '__cached__', '__doc__', '__file__', '__initializing__', '__loader__', '__name__', '__package__', 'blended_transform_factory', 'dist', 'np']
>>>
У меня текстового поля нет (хотя оно существует в виде TextBox), поэтому у него тоже где-нибудь может не оказаться. Кнопки использовать только потому, что нет текстового поля, - как-то не комильфо (костыль это, не конкретное решение задачи). А я помню, что окна matplotlib'а можно встраивать как виджеты в окна PyQt. А уж PyQt хорошо развит в графических контролах, так как это его направление. Ну, и в отличие от tkinter'а для PyQt есть среда, пригодная для новичков, в ней можно наформошлёпить окно, главное понять, как его потом подключить к скрипту. Короче, окно на PyQt ему будет проще получить, чем всё остальное, с этим ему и помогут охотнее, так как готовых примеров много в Интернете.

This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB