Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/34: Рейтинг темы: голосов - 34, средняя оценка - 4.56
1 / 1 / 0
Регистрация: 14.04.2016
Сообщений: 59

Модуль не видит атрибут. В чем может быть проблема?

09.08.2019, 13:38. Показов 7148. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Модуль matplotlib не видит атрибут задающий диапазон frange. В чем может быть проблема?Пробовал код с сайта на котором подробно рассказывается об этом модуле, ошибка та же.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
 
import math
 
# !!! Импортируем один из пакетов Matplotlib
import pylab
 
# !!! Импортируем пакет со вспомогательными функциями
from matplotlib import mlab
 
# Будем рисовать график этой функции
def func (x):
    """
    sinc (x)
    """
    if x == 0:
        return 1.0
    return math.sin (x) / x
 
# Интервал изменения переменной по оси X
xmin = -20.0
xmax = 20.0
 
# Шаг между точками
dx = 0.01
 
# !!! Создадим список координат по оиси X на отрезке [-xmin; xmax], включая концы
xlist = mlab.frange (xmin, xmax, dx)
 
# Вычислим значение функции в заданных точках
ylist = [func (x) for x in xlist]
 
# !!! Нарисуем одномерный график
pylab.plot (ylist)
 
# !!! Покажем окно с нарисованным графиком
pylab.show()
Миниатюры
Модуль не видит атрибут. В чем может быть проблема?  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.08.2019, 13:38
Ответы с готовыми решениями:

второй жесткий диск, даже биос его не видит!В чем может быть проблема?
Подскажите пожалуйста!Я поставил себе второй жесткий диск,и ни том что компьютер,даже биос его не видит!В чем может быть проблема?

Яндекс не видит сайт. В чем может быть проблемма?
Сайт http://global-it-solutions.eu практически не видим поисковиками, в особенности Яндексом. В чем может быть проблема? Оптимизацию...

В чем может быть проблема
Доброе утро! Совсем новичок в маткаде. Не могу понять,почему не строится график

13
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
09.08.2019, 13:50
Цитата Сообщение от hur1ey Посмотреть сообщение
Модуль matplotlib не видит атрибут задающий диапазон frange.
1) используй нормульную ИДЕ (пичарм например)
2) в модуле млаб реально НЕТ такого атрибута
смотри внимательно что там а сайт, про какую версию матплотлиб шла речь или неверно код переписал.

Добавлено через 22 секунды
Цитата Сообщение от hur1ey Посмотреть сообщение
В чем может быть проблема?
в том, что такой функции в млаб нет
1
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
09.08.2019, 14:22
Цитата Сообщение от hur1ey Посмотреть сообщение
Пробовал код с сайта на котором подробно рассказывается об этом модуле
Вот что значит копипастить код без предварительного знакомства с документацией.
Модуль mlab давно "похудел" и frange в третьей ветке matplotlib просто нет.
Сам модуль мало кому нужен и все еще не удален полностью только из-за кучки поклонников matlab'a.
0
1 / 1 / 0
Регистрация: 14.04.2016
Сообщений: 59
09.08.2019, 14:26  [ТС]
Garry Galler, Скопировано было после того как вся информация с того сайта была прочитана и усвоена.А про изменения модуля нигде сказано не было.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
09.08.2019, 14:29
Цитата Сообщение от hur1ey Посмотреть сообщение
А про изменения модуля нигде сказано не было.
Так статья не из официальной доки? Нет. Древняя? Да.
Документацию нужно читать, а на статьи.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
09.08.2019, 14:33
Цитата Сообщение от hur1ey Посмотреть сообщение
А про изменения модуля нигде сказано не было.
а ты где смотрел?) не на сайтах же с графиками?
https://matplotlib.org/3.1.1/a... ght=frange

Добавлено через 1 минуту
подсказка
(use numpy.arange instead)
0
1 / 1 / 0
Регистрация: 14.04.2016
Сообщений: 59
09.08.2019, 19:34  [ТС]
Garry Galler, Статья было с июля этого года.Попытался сделать по примерам с офф сайта, сама постройка графика не получается.Я так понимаю что вся проблема в передаче данных от решения к построению самого графика, потому что без кода относящегося к графику все идеально работает.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
# sphinx_gallery_thumbnail_number = 3
import matplotlib.pyplot as plt
import numpy as np
# * - coding: utf-8 - *-
# подключение библиотеки tkinter
from tkinter import *
# импорт математической библиотеки
from math import *
# описание функции
def du (x,y):
    return 1/(cos(x))-y*tan(x)
def fx (x_0,y_0,x_k,n_1):
# шаг интегрирования
    h= (x_k-x_0) /n_1
#Аналитический метод
    for i in range (0,n_1):
       y3=cos(x_0)+sin(x_0)
       list.append(y3)
       print("Аналитический метод", y3)
#Метод Эйлера
    for i in range (0,n_1):
       y1=y_0+h*du (x_0,y_0)
       x1=x_0+h
       x_0=x1
       y_0=y1
       ylist.append(y1)
       print("euler", y1)
    return y1
def rk (x_0,y_0,x_k,n_1):
    h= (x_k-x_0) /n_1
# метод рунге-кутта
    for i in range (0,n_1):
        k1=h*du (x_0,y_0)
        k2=h*du (x_0+h/2,y_0+k1/2)
        k3=h*du (x_0+h/2,y_0+k2/2)
        k4=h*du (x_0+h,y_0+k3)
        y1=y_0+ (k1+2*k2+2*k3+k4) /6
        x_0=x_0+h
        y_0=y1
        lst.append(y1)
        print("Runge-kutta", y1)
    return y1
def calc_y1 ():
# начальные условия
    x0 = float (x0_entry. get ())
    y0 = float (y0_entry. get ())
    y3=0
# конечная точка
    xk = float (xk_entry. get ())
# число разбиений
    n = int (n_entry. get ())
# использование обработки исключений. Сначала выполняется ветвь try
    try:
        y1 = "%.3f" % fx (x0,y0,xk,n)
        y2 = "%.3f" % rk (x0,y0,xk,n)
# если во время выполнения try возникает исключение,
# то дальнейшее выполнение try прекращается и выполняется ветвь except
    except:
        y1 = "?"
        y2 = "?"
    y1_label.configure(text=y1)
    y2_label.configure(text=y2)
# создание экземпляра класса Tk, отвечающего за создание окон
root=Tk ()
# определение заголовка окна
root. title ("Задание 1")
frame = Frame (root)
frame. pack ()
t1_label = Label (frame, bg='tan', text="Численное решение дифференциального уравнения первого порядка", font='arial 12')
t1_label. grid (row=0, column=0, columnspan=5, padx=25,pady=5)
# создание окна ввода величины начального значения числа X
x0_entry = Entry (frame, width=10)
x0_entry. grid (row=1, column=2,pady=5)
x0_lebel = Label (frame, text="Начальное значение X: ")
x0_lebel. grid (row=1, column=1,pady=5)
# создание окна ввода величины начального значения числа Y
y0_entry = Entry (frame, width=10)
y0_entry. grid (row=2, column=2,pady=5)
y0_lebel = Label (frame, text="Начальное значение Y: ")
y0_lebel. grid (row=2, column=1,pady=5)
# оздание окна ввода величины конечной точки
xk_entry = Entry (frame, width=10)
xk_entry. grid (row=1, column=4,pady=5)
xk_lebel = Label (frame, text="Конечное значение Х: ")
xk_lebel. grid (row=1, column=3,pady=5)
# создание окна ввода величины точности интегрирования)
n_entry = Entry (frame, width=10)
n_entry. grid (row=2, column=4,pady=5)
n_lebel = Label (frame, text="Число разбиений: ")
n_lebel. grid (row=2, column=3,pady=5)
# создание поля вывода ответа (метод эйлера)
y1_label = Label (frame, text="?")
y1_label. grid (row=3, column=1,padx=5,pady=5)
y1_lebel = Label (frame, text="Метод Рунге-Кутта 4го порядка:")
y1_lebel. grid (row=4, column=0,padx=5,pady=5)
# создание поля вывода ответа (метод рунге-кутта)
y2_label = Label (frame, text="?")
y2_label. grid (row=4, column=1,padx=5,pady=5)
y2_lebel = Label (frame, text=" Метод Эйлера:  ")
y2_lebel. grid (row=3, column=0,padx=5,pady=5)
# создание кнопки вычисления значения интеграла
eval_button = Button (frame,bg='coral', text="Вычислить", width=10,command=calc_y1)
eval_button. grid (row=4, column=3,padx=5,pady=5)
# создание кнопки закрытия приложения
exit_button = Button (frame, bg='coral', text="Выход", width=10,command=root. destroy)
exit_button. grid (row=4, column=4,padx=5,pady=5)
# непосредственное создание окна
plt.rc('font',**{'family':'verdana'})
plt.xlabel("ось абцисс")
plt.ylabel("ось ординат")
plt.plot(xlist, list, "d-", label="аналитический метод")
plt.plot(xlist, ylist, "b-", label="метод Эйлера")
plt.plot(xlist, lst, "g-", label="Рунге-Кутта 4-го порядка")
plt.legend()
plt.grid()
plt.show()
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
09.08.2019, 22:02
Цитата Сообщение от hur1ey Посмотреть сообщение
Статья было с июля этого года
Да, да, я вижу: дата первого комментария под статьей 20.11.2011. Свежак. Автор jenyay.net.

Зачем вам графический интерфейс (tkinter), чтобы построить график?
0
1 / 1 / 0
Регистрация: 14.04.2016
Сообщений: 59
09.08.2019, 22:41  [ТС]
Garry Galler, Вообще, Tkinter создает интерфейс для более удобного и красивого ввода данных, которые впоследствии используются для решения уравнения тремя способами и ответ как раз является координатами для графика.Комментарий "# непосредственное создание окна" просто был случайно вставлен туда.
А то что код для графика идет после создания интерфейса, просто посчитал что так будет правильнее.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
09.08.2019, 23:41
Цитата Сообщение от hur1ey Посмотреть сообщение
Tkinter создает интерфейс для более удобного
В вашем случае он создает чрезвычайно нечитаемый код. В силу того, что вы не умеете правильно использовать функции ткинтера и ООП. И в чем конкретно у вас проблема из этого кода вообще непонятно.
0
1 / 1 / 0
Регистрация: 14.04.2016
Сообщений: 59
10.08.2019, 00:12  [ТС]
Garry Galler, окей,а не могли бы вы помочь написать как правильно использовать в данном случае функции tkintera?
Без кода относящегося к графику,все прекрасно работает...
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# * - coding: utf-8 - *-
# подключение библиотеки tkinter
from tkinter import *
# импорт математической библиотеки
from math import *
# описание функции
def du (x,y):
    return 1/(cos(x))-y*tan(x)
def fx (x_0,y_0,x_k,n_1):
# шаг интегрирования
    h= (x_k-x_0) /n_1
#Аналитический метод
    for i in range (0,n_1):
       y3=cos(x_0)+sin(x_0)
       print("Аналитический метод", y3)
#Метод Эйлера
    for i in range (0,n_1):
       y1=y_0+h*du (x_0,y_0)
       x1=x_0+h
       x_0=x1
       y_0=y1
       print("euler", y1)
    return y1
def rk (x_0,y_0,x_k,n_1):
    h= (x_k-x_0) /n_1
# метод рунге-кутта
    for i in range (0,n_1):
        k1=h*du (x_0,y_0)
        k2=h*du (x_0+h/2,y_0+k1/2)
        k3=h*du (x_0+h/2,y_0+k2/2)
        k4=h*du (x_0+h,y_0+k3)
        y1=y_0+ (k1+2*k2+2*k3+k4) /6
        x_0=x_0+h
        y_0=y1
        print("Runge-kutta", y1)
    return y1
def calc_y1 ():
# начальные условия
    x0 = float (x0_entry. get ())
    y0 = float (y0_entry. get ())
    y3=0
# конечная точка
    xk = float (xk_entry. get ())
# число разбиений
    n = int (n_entry. get ())
# использование обработки исключений. Сначала выполняется ветвь try
    try:
        y1 = "%.3f" % fx (x0,y0,xk,n)
        y2 = "%.3f" % rk (x0,y0,xk,n)
# если во время выполнения try возникает исключение,
# то дальнейшее выполнение try прекращается и выполняется ветвь except
    except:
        y1 = "?"
        y2 = "?"
    y1_label.configure(text=y1)
    y2_label.configure(text=y2)
# создание экземпляра класса Tk, отвечающего за создание окон
root=Tk ()
# определение заголовка окна
root. title ("Задание 1")
frame = Frame (root)
frame. pack ()
t1_label = Label (frame, bg='tan', text="Численное решение дифференциального уравнения первого порядка", font='arial 12')
t1_label. grid (row=0, column=0, columnspan=5, padx=25,pady=5)
# создание окна ввода величины начального значения числа X
x0_entry = Entry (frame, width=10)
x0_entry. grid (row=1, column=2,pady=5)
x0_lebel = Label (frame, text="Начальное значение X: ")
x0_lebel. grid (row=1, column=1,pady=5)
# создание окна ввода величины начального значения числа Y
y0_entry = Entry (frame, width=10)
y0_entry. grid (row=2, column=2,pady=5)
y0_lebel = Label (frame, text="Начальное значение Y: ")
y0_lebel. grid (row=2, column=1,pady=5)
# оздание окна ввода величины конечной точки
xk_entry = Entry (frame, width=10)
xk_entry. grid (row=1, column=4,pady=5)
xk_lebel = Label (frame, text="Конечное значение Х: ")
xk_lebel. grid (row=1, column=3,pady=5)
# создание окна ввода величины точности интегрирования)
n_entry = Entry (frame, width=10)
n_entry. grid (row=2, column=4,pady=5)
n_lebel = Label (frame, text="Число разбиений: ")
n_lebel. grid (row=2, column=3,pady=5)
# создание поля вывода ответа (метод эйлера)
y1_label = Label (frame, text="?")
y1_label. grid (row=3, column=1,padx=5,pady=5)
y1_lebel = Label (frame, text="Метод Рунге-Кутта 4го порядка:")
y1_lebel. grid (row=4, column=0,padx=5,pady=5)
# создание поля вывода ответа (метод рунге-кутта)
y2_label = Label (frame, text="?")
y2_label. grid (row=4, column=1,padx=5,pady=5)
y2_lebel = Label (frame, text=" Метод Эйлера:  ")
y2_lebel. grid (row=3, column=0,padx=5,pady=5)
# создание кнопки вычисления значения интеграла
eval_button = Button (frame,bg='coral', text="Вычислить", width=10,command=calc_y1)
eval_button. grid (row=4, column=3,padx=5,pady=5)
# создание кнопки закрытия приложения
exit_button = Button (frame, bg='coral', text="Выход", width=10,command=root. destroy)
exit_button. grid (row=4, column=4,padx=5,pady=5)
# непосредственное создание окна
0
1 / 1 / 0
Регистрация: 14.04.2016
Сообщений: 59
11.08.2019, 12:46  [ТС]
Может кто-то может помочь дописать код который будет строить график к рабочей программе...Попробовал уже все что нашел,и вставку графика в tkinter, и через анаконду ipython...
0
1293 / 677 / 367
Регистрация: 07.01.2019
Сообщений: 2,302
11.08.2019, 15:55
Цитата Сообщение от hur1ey Посмотреть сообщение
будет строить график к рабочей программе
Нужна сама программа, только рабочий код, без tkinter
0
1 / 1 / 0
Регистрация: 14.04.2016
Сообщений: 59
11.08.2019, 16:47  [ТС]
tooru, Вот рабочий код без ткинтера:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# * - coding: utf-8 - *-
# импорт математической библиотеки
from math import *
x_0=float(input("Введите начальное значение x"))
x_k=float(input("Введите конечное значение x"))
n_1=int(input("Введите число разбиений"))
y_0=float(input("Введите начальное значение y"))
def du (x_0,y_0):
        return  1/(cos(x_0))-y_0*tan(x_0)
h= (x_k-x_0) /n_1
#Аналитический метод
for i in range (0,n_1):
       y3=cos(x_0)+sin(x_0)
       print("Аналитический метод", y3)
#Метод Эйлера
for i in range (0,n_1):
       y1=y_0+h*du (x_0,y_0)
       x1=x_0+h
       x_0=x1
       y_0=y1
       print("euler", y1)
# метод рунге-кутта
for i in range (0,n_1):
        k1=h*du (x_0,y_0)
        k2=h*du (x_0+h/2,y_0+k1/2)
        k3=h*du (x_0+h/2,y_0+k2/2)
        k4=h*du (x_0+h,y_0+k3)
        y1=y_0+ (k1+2*k2+2*k3+k4) /6
        x_0=x_0+h
        y_0=y1
        print("Runge-kutta", y1)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.08.2019, 16:47
Помогаю со студенческими работами здесь

В чем может быть проблема?
Ноутбук HP 250 G1, win7 x64, драйвер карты Ralink RT3290 802.11bgn Wi-Fi Adapter. Такая проблема, если выключаю в сон/обычное завершение,...

В чем может быть проблема?
Поработал отец на компе. Потом через пару дней включаю его а он молчит, кулер не работает БП тоже, тишина вообщем. Блок питания это??? или...

В чем может быть проблема ?
В текстовом файле записана без ошибок формула следующего вида: <формула> ::= <терминал> | ( <формула> <знак>...

Подскажите в чем может быть проблема
Назначаю группе пользователей роль, а она не распространяется на пользователя.

подскажите в чем может быть проблема?
Немного предистории.... Изначально сайт заказывался в студии веб-дизайна, они работали над ним наверное месяца два, после чего выкатили...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru