Форум программистов, компьютерный форум, киберфорум
Python: Научные вычисления
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/26: Рейтинг темы: голосов - 26, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 23.01.2017
Сообщений: 9

MatPlotLib вывод графика

27.03.2017, 07:10. Показов 5574. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
def temp(x,h,l,k,To):
     #Variables pg18
     a11 = 7 + (4*h*(l*l))/(5*k)
     a12 = (2*h*(l*l))/(5*k) - 8
     a13 = 1 - (h*(l*l))/(5*k)
     a21 = 1 + (3*h*(l*l)/(20*k))
     a22 = (2 + 6*h*(l*l)/(5*k))
     b1 = (h*(l*l)*To)/(k)
     TemK = (2*b1*(a11*a22-a12*a21)-b1*(3*a11-2*a21)*a12)/2*((a11+a13)*(a11*a22-a12*a21)-a12*a21*(a11-a13))
     Tj = ((a13*a21-a11*a21)/(a11*a22-a12*a21))*TemK + b1*(3*a11-2*a21)/2*(a11*a22-a12*a21)
     Ti = -4*Tj + 15*TemK - 400
     b = (29.62963 - ((a13*a21-a11*a21)/(a11*a22-a12*a21))*37.037)*((2*(a11*a22-a12*a21))/(3*a11-2*a21))
     T=b*k/h*l*l
     return (1/100)*(((2*x*x)-3*x*l+(l*l))*Ti + (4*x*l-4*x)*Tj + ((2*x*x)-x*l)*TemK)
Привет всем. Хотел бы узнать почему я не могу вывести с помощью такой функции график?
Другое дело когда вместо этого возвращаемого значения я ставлю
Python
1
return  0.2962948*x*x-2.962948*x+37.037
Все хорошо строится
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.03.2017, 07:10
Ответы с готовыми решениями:

Изображение вне графика. matplotlib
Как использую библиотеку python matplotlib добавить изображение к графику? Что бы изображение было за границей рисования. Примерно...

Ускорение обновления графика matplotlib с использованием matplotlib.animation
Всем добрый день. Я пытаюсь оптимизировать вывод графиков matplotlib в режиме реального времени. Пробовал реализовать через plt.plot и...

Matplotlib.Flask. Вывод среднего значения цвета графика по вертикали и горизонтали
Сейчас требуется: - создать функцию для вывода графика среднего значения цвета по вертикали и горизонтали. Ну и по возможности...

17
431 / 302 / 90
Регистрация: 03.12.2015
Сообщений: 741
27.03.2017, 13:11
Цитата Сообщение от mgt95 Посмотреть сообщение
Хотел бы узнать почему я не могу вывести с помощью такой функции график?
Вы можете! Почему Вы думаете, что не можете?
Может быть все дело в том, что в первой функции 5 аргументов, а во второй всего один?
1
0 / 0 / 0
Регистрация: 23.01.2017
Сообщений: 9
27.03.2017, 13:52  [ТС]
vrm2, Возможно и могу, но у меня вместо этого появляется пустой график. И я так понял это связано с тем как я напишу y=f(x).
Python
1
0.2962948*x*x-2.962948*x+37.037
Если я напишу так, то программа прекрасно строит параболу, но так как смысла в такой программе не будет, мне нужны параметры, которые я могу вводить.
0
431 / 302 / 90
Регистрация: 03.12.2015
Сообщений: 741
27.03.2017, 14:24
С параметрами тоже можно
Показывайте весь код, который строит/не строит нужный график
1
0 / 0 / 0
Регистрация: 23.01.2017
Сообщений: 9
27.03.2017, 14:36  [ТС]
vrm2,
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
import numpy as np
 
from Tkinter import *
 
 
 
 
 
def gcd():
     n1,h1,l1,k1,To1 = correct()
     lag1=0.01
     lag2=0.01
     x1 = np.arange(0.0, 10+n1, n1)
 
 
     
 
 
     
     
     v = var.get()
     if v == 0:
          fig = plt.figure()
          #plt.plot(x1, func1(x1),x2,func2(x2),color="k")
          plt.plot(x1, temp(x1,h1,l1,k1,To1),color="k")
          plt.title(u"Изменение температуры по длине стержня", {'fontname':'Arial','fontsize':16})
          plt.ylabel(u"Температура Т",{'fontname':'Arial','fontsize':16})
          plt.xlabel(u" х ",{'fontname':'Arial','fontsize':16})
          plt.grid(True)
          plt.show()
 
     elif v == 1:
          fig = plt.figure()
          plt.plot(x1, deform1(x1), 'k', x1,deform2(x1),'b', x1,deform3(x1),'r')
          plt.title(u"Деформация",{'fontname':'Arial','fontsize':16})
          plt.ylabel(u"Eps",{'fontname':'Arial','fontsize':16})
          plt.xlabel(u" х ",{'fontname':'Arial','fontsize':16})
          plt.grid(True)
          plt.show()    
 
     elif v == 2:
          fig = plt.figure()
          plt.plot(x1, voltage1(x1),'k', x1, voltage2(x1),'b', x1, voltage3(x1),'r')
          plt.title(u"Напряжение",{'fontname':'Arial','fontsize':16})
          plt.ylabel(u"Sigma",{'fontname':'Arial','fontsize':16})
          plt.xlabel(u"х",{'fontname':'Arial','fontsize':16})
          plt.grid(True)
          plt.show()
     
     elif v == 3:
          fig = plt.figure()
          plt.plot(x1, movement1(x1),'k')
          plt.title(u"Перемещение",{'fontname':'Arial','fontsize':16})
          plt.ylabel(u"u",{'fontname':'Arial','fontsize':16})
          plt.xlabel(u"х",{'fontname':'Arial','fontsize':16})
          plt.grid(True)
          plt.show()
          
 
def correct():
     a = ent_n1.get()
     b = ent_h.get()
     c = ent_l.get()
     d = ent_k.get()
     e = ent_T.get()
     
 
     try:
          a = float(a)
     except ValueError:
          a = 0
          ent_n1.delete(0,END)
          ent_n1.insert(0,0)
     try:
          b = float(b)
     except ValueError:
          b = 0
          ent_n2.delete(0,END)
          ent_n2.insert(0,0)
     try:
          c = float(c)
     except ValueError:
          c = 0
          ent_n1.delete(0,END)
          ent_n1.insert(0,0)
     try:
          d = float(d)
     except ValueError:
          d = 0
          ent_n1.delete(0,END)
          ent_n1.insert(0,0)
     try:
          e = float(e)
     except ValueError:
          e = 0
          ent_n1.delete(0,END)
          ent_n1.insert(0,0)
 
     
     return a, b, c, d, e
 
def temp(x,h,l,k,To):
     #Variables pg18
     a11 = 7 + (4*h*(l*l))/(5*k)
     a12 = (2*h*(l*l))/(5*k) - 8
     a13 = 1 - (h*(l*l))/(5*k)
     a21 = 1 + (3*h*(l*l)/(20*k))
     a22 = (2 + 6*h*(l*l)/(5*k))
     b1 = (h*(l*l)*To)/(k)
     TemK = (2*b1*(a11*a22-a12*a21)-b1*(3*a11-2*a21)*a12)/2*((a11+a13)*(a11*a22-a12*a21)-a12*a21*(a11-a13))
     Tj = ((a13*a21-a11*a21)/(a11*a22-a12*a21))*TemK + b1*(3*a11-2*a21)/2*(a11*a22-a12*a21)
     Ti = -4*Tj + 15*TemK - 400
     b = (29.62963 - ((a13*a21-a11*a21)/(a11*a22-a12*a21))*37.037)*((2*(a11*a22-a12*a21))/(3*a11-2*a21))
     T=b*k/h*l*l
     print "a11", a11
     print "a12", a12
     print "a13", a13
     print "a21", a21
     print "a22", a22
     print "b1", b1
     print "Ti", Ti
     print "Tj", Tj
     print "TemK", TemK
     print "Func ", (1/100)*(((2*x*x)-3*x*l+(l*l))*37 + (4*x*l-4*x)*29 + ((2*x*x)-x*l)*37)
     return (1/100)*(((2*x*x)-3*x*l+(l*l))*37 + (4*x*l-4*x)*29 + ((2*x*x)-x*l)*37)
 
def deform1(x):
      return -0.0000037037*x*x+0.000037037*x-0.0004629625 
 
def deform2(x):
      return 0.0000037037*x*x-0.000037037*x+0.0000629625
 
def deform3(x):
      return -0.00004*(x-x+1)
 
def voltage1(x):
      return  -7.4074*x*x+74.07*x-925.925
def voltage2(x):
      return 7.4074*x*x-74.07*x-125.925
def voltage3(x):
      return -800*(x-x+1)
 
def movement1(x):
      return  0.00000123456*x*x*x-0.0000185185*x*x+0.0000629625*x
 
 
 
 
win = Tk()
win.title('Изменение температуры по длине стержня')
lab_n1 = Label(text="X1")
lab_n1.grid(row=2,column=0)
 
lab_h = Label(text="h")
lab_h.grid(row=3,column=0)
 
lab_l = Label(text="l")
lab_l.grid(row=4,column=0)
 
lab_k = Label(text="k")
lab_k.grid(row=5,column=0)
 
lab_T = Label(text="T")
lab_T.grid(row=6,column=0)
 
ent_n1 = Entry(width=10,bg="white")
ent_n1.grid(row=2,column=1)
 
ent_h = Entry(width=10,bg="white")
ent_h.grid(row=3,column=1)
 
ent_l = Entry(width=10,bg="white")
ent_l.grid(row=4,column=1)
 
ent_k = Entry(width=10,bg="white")
ent_k.grid(row=5,column=1)
 
ent_T = Entry(width=10,bg="white")
ent_T.grid(row=6,column=1)
 
var=IntVar()
var.set(0)
rad0 = Radiobutton(win,text="Первая",variable=var,value=0)
rad1 = Radiobutton(win,text="Вторая",variable=var,value=1)
rad2 = Radiobutton(win,text="Третья",variable=var,value=2)
rad3 = Radiobutton(win,text="Четвертая",variable=var,value=3)
rad0.grid(row=2,column=2)
rad1.grid(row=3,column=2)
rad2.grid(row=4,column=2)
rad3.grid(row=5,column=2)
 
but = Button(text="Вычислить",command=gcd,pady=10)
but.grid(row=7,column=0,rowspan=2,columnspan=2,sticky=W+N+S+E)
 
win.mainloop()
При выборе 1 пункта график не построится, остальные я еще не доделал
0
431 / 302 / 90
Регистрация: 03.12.2015
Сообщений: 741
27.03.2017, 15:10
Запустил, появилось окно для ввода данных. Ввел в каждом поле 5, выбрал "первая", нажал "вычислить", появился график.
При выборе "вторая" и т.д. тоде графики появляются.

Работаю в ipython-notebook. Правда исправил print на print(), т.к. использую python 3.

Какие данные надо ввести, чтобы график не построился?
1
0 / 0 / 0
Регистрация: 23.01.2017
Сообщений: 9
27.03.2017, 15:23  [ТС]
vrm2, то есть у вас появилась парабола при выборе "первого" пункта ? Если вам не сложно, прикрепите скрин
0
431 / 302 / 90
Регистрация: 03.12.2015
Сообщений: 741
27.03.2017, 15:53
Насчет параболы спорно, конечно. Но как посмотреть ...
Миниатюры
MatPlotLib вывод графика  
1
9 / 9 / 3
Регистрация: 24.01.2015
Сообщений: 79
Записей в блоге: 6
27.03.2017, 15:57
Если при вычислении Temp числа заменить на числа с точкой, парабола появится.
(1/100.0)*(((2.0*x*x)-3.0*x*l+(l*l))*37.0 + (4.0*x*l-4.0*x)*29.0 + ((2.0*x*x)-x*l)*37.0)
2
431 / 302 / 90
Регистрация: 03.12.2015
Сообщений: 741
27.03.2017, 16:32
Лучший ответ Сообщение было отмечено mgt95 как решение

Решение

Цитата Сообщение от Лысанов Виталий Посмотреть сообщение
Если при вычислении Temp числа заменить на числа с точкой, парабола появится.
Отличное замечание. Это все объясняет!
В python 3 поменяли операцию деления по сравнению с python 2. Поэтому у меня работает.
Python
1
2
3
4
5
6
7
# python 2: 
1/2 = 0
1.0/2.0 = 0.5
 
# python 3
1/2 = 0.5
1//2 = 0
mgt95,
Похоже, проблема в том, что при вычислениях где-то у Вас появляются числа целого типа (int и long). Из-за этого неправильно вычисляется выражение. Надо:
1. Заменить все целые константы (добавить .0)
2. Не забыть преобразовать введенные пользователем данные к типу float. Т.е. строки с 64 по 68 должны выглядеть как-то так:
Python
1
a = float(ent_n1.get())
1
0 / 0 / 0
Регистрация: 23.01.2017
Сообщений: 9
27.03.2017, 17:37  [ТС]
Лысанов Виталий, vrm2, Благодарю вас. Вы мне очень помогли.
0
5 / 5 / 0
Регистрация: 25.09.2017
Сообщений: 569
02.02.2020, 13:47
Здравствуйте! Есть смысл продолжить эту тему, в цикле функция Plt рендерит 2 графика, но один из них почему-то не отображается, то есть пустой экран. Но если перемещать его мышью -- то тогда можно увидеть изменения и еще один баг --- второй график начинает рисоваться вдруг на экране первого и вместе получается каша.


Код:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import matplotlib.pyplot as plt
 
def Plt(arr1x, arr2Y):
        graf1() # ГОТОВИТ ДАННЫЕ ДЛЯ ОТРИСОВКИ ГРАФИКА 1
        graf2(arr1x, arr2Y) #ГОТОВИТ ДАННЫЕ ДЛЯ ОТРИСОВКИ ГРАФИКА 2
        plt.show()
 
 
"""Сначала я добавляю  эти объекты экрана, в каждом из которых рисуется свой график:"""
 
fig = plt.figure(1)
fig_G = plt.figure(2)
 
 
"""Потом в цикле вычисляются данные x, y и запускается функция Plt:"""
 
for i in range(100):
            Plt(x, y)
0
578 / 411 / 69
Регистрация: 09.01.2018
Сообщений: 1,363
02.02.2020, 14:21
Вообще-то трудно догадаться, что и как вы там"рендерите". Код в студию (точнее фрагменты кода работы с графикой), тогда и разговор можно будет вести хоть о чем-то. А так - ну да, порождаете две картинки - и это все, что видно из приведенного пока кода. Ну и за одно, проверьте, что там у вас с отступами. А то пришлось править по ходу.
1
5 / 5 / 0
Регистрация: 25.09.2017
Сообщений: 569
02.02.2020, 15:21
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
import matplotlib.pyplot as plt
 
"""Сначала я добавляю  эти объекты экрана, в каждом из которых рисуется свой график:"""
 
fig = plt.figure(1)
fig_G = plt.figure(2)
G = nx.Graph()  # переменная для создания графа
 
 
 
"""Первая работает с этим модулем:"""
 
import networkx as nx
 
def graf1():
        global G
        #НУ КАКАЯ-ТО РАБОТА С networkx
       
 
"""А вторая делает примерно вот что:"""
 
 
def graf2(X, double_arr_Y):
        global fig
        ax = fig.add_subplot(111)
        ax.clear() #НУЖНО ОЧИСТИТЬ ГРАФИК НА КАЖДОЙ ИТЕРАЦИИ
        ax.plot(X, double_arr_Y[0], marker='o',color = 'blue')
        ax.plot(X, double_arr_Y[1], marker='+',)
 
 
"""update нужна для очистки второго экрана:"""
 
def update(X, double_arr_Y):
        global G
        plt.pause(0.9)
        G.clear()
        plt.clf()
 
def Plt(arr1x, arr2Y):
        graf1() # ГОТОВИТ ДАННЫЕ ДЛЯ ОТРИСОВКИ ГРАФИКА 1
        graf2(arr1x, arr2Y) #ГОТОВИТ ДАННЫЕ ДЛЯ ОТРИСОВКИ ГРАФИКА 2
        plt.show()
        update()
 
 
for i in range(100):
            Plt(x, y)
Цитата Сообщение от passant Посмотреть сообщение
Ну и за одно, проверьте, что там у вас с отступами. А то пришлось править по ходу.
А я напрямую со спайдера копирую сюда, интерпретатор ошибок не выдаёт.

Добавлено через 7 минут
Код дополнил
0
578 / 411 / 69
Регистрация: 09.01.2018
Сообщений: 1,363
02.02.2020, 15:37
Где у вас код для рисования графика 1?
1
5 / 5 / 0
Регистрация: 25.09.2017
Сообщений: 569
02.02.2020, 17:59
Цитата Сообщение от passant Посмотреть сообщение
Где у вас код для рисования графика 1?
Он в функции graf1 (строка 15), рисуется с помощью networkx

в вот сам код в теле graf1 вместо комментария (строка 17):

Python
1
2
3
4
5
6
global pos # заданы какие-то координаты расположения вершин
edges, colors = zip(*nx.get_edge_attributes(self.G,'weight').items()) # здесь я раскрашиваю ребра в зависимости от веса
 
nx.draw(G, pos, edgelist=edges, edge_color=colors, with_labels=True)
labels = nx.get_edge_attributes(G, 'weight')
nx.draw_networkx_edge_labels(G, pos, edge_labels=labels)
Те примеры кода что я видел из интернета, рисовали граф в networkx и в конце делался вызов plt.show()
Например:

Добавлено через 2 часа 7 минут
Python
1
2
3
4
5
6
7
>>> G = nx.petersen_graph()
>>> plt.subplot(121)
<matplotlib.axes._subplots.AxesSubplot object at ...>
>>> nx.draw(G, with_labels=True, font_weight='bold')
>>> plt.subplot(122)
<matplotlib.axes._subplots.AxesSubplot object at ...>
>>> nx.draw_shell(G, nlist=[range(5, 10), range(5)], with_labels=True, font_weight='bold')
when drawing to an interactive display. Note that you may need to issue a Matplotlib

Python
1
>>> plt.show()
https://networkx.github.io/doc... orial.html
0
5515 / 2868 / 571
Регистрация: 07.11.2019
Сообщений: 4,758
02.02.2020, 21:39
Alex_py, выложите код, который можно было бы запустить или который вы сами запускаете и который некорректно работает. Если хотите чтобы вам помогли, конечно..
Выложили заведомо неполный нерабочий код и еще на что-то надеятесь...
0
5 / 5 / 0
Регистрация: 25.09.2017
Сообщений: 569
03.02.2020, 01:23
Ну все что касается networxk и matplotlib я выложил, все остальное --- это данные которые нужны чтобы построить графики, данные --- обычные списки numpy со значениями типа float64 И ЭТО НЕ ЛЕНИВЫЕ ОБЪЕКТЫ! А код весь в функциях graf1, graf2, которые вызываются в цикле for (строка 79). Не понимаю, зачем выкладывать лишний код, который не влияет прямо на результат. Этот остальной код вычисляет данные, который вообще отделен от этих функций graf1, graf2 в другие. Функции graph1, graph2 приведены ниже, что в их телах происходит.

Еще есть код, который готовит переменную pos (строка 35) для позиционирования первого графика, но с первым графиком проблем не возникает --- он рисуется , не рисуется второй (функция graf2), проблему я ранее выше сформулировал. Если приводить код для записи переменной pos тут, то возникнут еще вопросы, тогда нужно переписывать весь проект в тему. Проект очень большой для одной темы, по которой нужно всего лишь выяснить корректность шагов и весь код просто не имеет смысла приводить. Можно и по умолчанию pos задать инструментами networxk --- это не важно.

А нерабочий код, потому что это псевдокод, и я выложил, чтобы показать основные ветки, думал сразу увидят проблему и укажут на ошибку в общих ветках, наверняка ошибка банальна.

Ну пусть там я не знаю, можно задать как-то вот таким образом исходные данные:


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
import matplotlib.pyplot as plt
import networkx as nx
 
""" Сначала идет инициализация  объектов экрана, в каждом из которых рисуется свой график:"""
 
fig = plt.figure(1)
fig_G = plt.figure(2)
G = nx.Graph()  # переменная для создания графа
 
"""Предположим, данные уже сразу есть и на каждой итерации цикла у меня строится один  и тот  же граф и график 
(хотя данные данные вычисляются на каждой итерации цикла и все они меняются. Я приведу массив Х длиной 100, 
может это слишком много дляnetworxk --- не знаю:"""
 
import numpy as np
 
X = np.array(sorted([np.random.uniform(0, 2*np.pi) for i in range(100)]))
 
"""Допустим, есть функции вычисляющие массив Y, на вход каждой из них подается массив X"""
 
def our_Y_sin(X):
        return np.sin(X)
 
def our_Y_cos(X):
        return np.cos(X)
 
 
"""Есть функции , рендерящие графики"""
 
"""Первая graf1 работает с этим модулем networkx ([url]https://networkx.github.io/documentation/stable/index.html[/url]) и строит граф G:"""
 
 
def graf1():
        global G, fig_G
        fig_G.add_subplot(111)
        pos = nx.spring_layout(G)  # пусть так заданы координаты расположения вершин
        edges, colors = zip(*nx.get_edge_attributes(G,'weight').items()) # здесь я раскрашиваю ребра в зависимости от веса
        nx.draw(G, pos, edgelist=edges, edge_color=colors, with_labels=True)
        labels = nx.get_edge_attributes(G, 'weight')
        nx.draw_networkx_edge_labels(G, pos, edge_labels=labels)
 
"""А вторая graf2, предположим, строит каких-то 2 графика функции:"""
 
 
def graf2(X, double_arr_Y):
        global fig
        ax = fig.add_subplot(111)
        ax.clear() #НУЖНО ОЧИСТИТЬ ГРАФИК НА КАЖДОЙ ИТЕРАЦИИ, потому что предполагается, что он меняется на каждой итерации в цикле (строка 79)
        ax.plot(X, double_arr_Y[0], marker='o',color = 'blue')
        ax.plot(X, double_arr_Y[1], marker='+',)
 
 
"""update нужна для очистки второго экрана:"""
 
def update():
        global G
        plt.pause(0.9)
        G.clear() # удаляю из графа все объекты связности --- вершины, ребра, потому предполагается, что граф меняется на каждой итерации цикла (строка 80)
        plt.clf()
 
def Plt(arr1x, arr2Y):
        graf1() # ГОТОВИТ ДАННЫЕ ДЛЯ ОТРИСОВКИ ГРАФИКА 1
        graf2(arr1x, arr2Y) #ГОТОВИТ ДАННЫЕ ДЛЯ ОТРИСОВКИ ГРАФИКА 2
        plt.show()
        update()
 
"""Функция по созданию  простенького графа (не важно) --- переменная G:"""
 
def path(G):
        G.add_edge("Омск", "Уфа", weight=100)
        G.add_edge("Томск", "Омск", weight=50)
        G.add_edge("Томск", "Владивосток", weight=0)
        return G
 
 
Y = [our_Y_sin(X), our_Y_cos(X)]# тут данные для отрисовки второго графика
 
"""Дальше идёт цикл, рендерящий оба графика и опаньки, второй график не рисуется на экране, но вылазят 2 экрана:"""
 
for i in range(100):
        G = path(G) # граф G рисуется заново после каждого сброса в инструкции G.clear() (строка 57 процедуры update, которая вызывается в Plt)
        noise = np.array([np.random.uniform(-5,5) for i in range(100)])
        Y[0] = Y[0] + noise
        Plt(X, Y)

Добавлено через 7 минут


Всё, поменял. Спасибо за внимание!

Добавлено через 5 минут
Запустил код сам. Второй график отображается, но картинка меняется, если меняешь масштаб экрана мышью.

Добавлено через 12 минут
Если надо скрипт запустить, то прилагаю:
Вложения
Тип файла: rar TEST5.rar (1.9 Кб, 5 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.02.2020, 01:23
Помогаю со студенческими работами здесь

Обновления графика в matplotlib
Добрый день! Реализовываю график в реальном времени через matplotlib, нашел пример: #!/usr/bin/env python # -*- coding: UTF-8 -*- ...

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

Построение графика через Matplotlib
Traceback (most recent call last): File &quot;C:\Users\admin\Desktop\регресия\Regressia__kopia.py&quot;, line 8, in &lt;module&gt; import...

Изменить цвет графика Matplotlib
Привет, строю график с помощью Matplotlib, он самый на картинке. Изменить цвет сетки получилось, а как поменять собственно цвет заливки...

Сгладить линию графика [matplotlib]
Добрый день! Мне нужно сгладить линию графика. Подскажите где почитать и если возможно покажите код. Этот график построил по...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru