Уведомления

Группа в Telegram: @pythonsu

#1 Май 19, 2017 16:18:40

Kyurem_BoG
Зарегистрирован: 2017-05-17
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Построение окна для ввода функций графиков

Есть программа которая стоит графики. Но мне надо сделать так чтобы я вводил функцию в окно ввода, и потом она строилась по нажатию на кнопку. Не совсем понимаю как это сделать. Так же у меня не строятся графики 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 (Май 19, 2017 18:18:03)

Офлайн

#2 Май 22, 2017 10:24:11

Kyurem_BoG
Зарегистрирован: 2017-05-17
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Построение окна для ввода функций графиков

Ни кто не знает что ли?

Офлайн

#3 Май 23, 2017 00:45:39

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9998
Репутация: +  857  -
Профиль   Отправить e-mail  

Построение окна для ввода функций графиков

Kyurem_BoG
Но мне надо сделать так чтобы я вводил функцию в окно ввода
Окно ввода у тебя как-то не наблюдается. Используй PyQt, чтобы сделать окно ввода. Но вводиться всё равно будет простой текст, который надо распознать и отнести к определённой функции. Поэтому всё это можно сделать в консоли поначалу, так как текст в консоли и текст в графическом окне будет распознаваться одинаково. А для распознавания текста нужно разработать алгоритм. Если попроще разрабатывать, то он должен принимать только точные написания функций, а на все остальные выдавать сообщение об ошибке при вводе.



Офлайн

#4 Май 23, 2017 07:02:53

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Построение окна для ввода функций графиков

Kyurem_BoG
Ни кто не знает что ли?
Так вы ничего не спрашивали. Одна констатация фактов и ни одной просьбы.
py.user.next
Используй PyQt, чтобы сделать окно ввода
Ну не обязательно. в матплотлибе в доках есть пример построения разных графиков при выборе пункта меню или нажатии кнопок. ТС мог все просто скопипастить. Надо только доки открыть.



Офлайн

#5 Май 23, 2017 11:06:00

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9998
Репутация: +  857  -
Профиль   Отправить e-mail  

Построение окна для ввода функций графиков

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 ему будет проще получить, чем всё остальное, с этим ему и помогут охотнее, так как готовых примеров много в Интернете.



Отредактировано py.user.next (Май 23, 2017 11:09:13)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version