Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
6 / 5 / 1
Регистрация: 27.06.2017
Сообщений: 249

Как перерисовать график в matplotlib?

30.10.2020, 14:44. Показов 1850. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть программа,которая рисует траекторию полёта снаряда. При запуске программы всё работает хорошо,но мне надо этот график перерисовывать.Пробовал очищать график,удалять - ничего не помогало

Подскажите,как перерисовать график?Функция draw1 должна как раз его перерисовывать

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
import sys 
from PyQt5 import QtWidgets,QtCore
from PyQt5.QtWidgets import QApplication, QMainWindow, QMenu, QVBoxLayout, QSizePolicy, QMessageBox, QWidget, QPushButton
from PyQt5.QtGui import QIcon
import design  
import requests
import qdarkstyle
import os
import math
import ctypes
import random
import seaborn as sns
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure
import matplotlib.pyplot as plt
plt.ion()
V0=10 #Нач скорость
a=45 #Угол
m=1 #Масса
k=1 #Коэфф сопротивления воздуха
 
class ExampleApp(QtWidgets.QMainWindow, design.Ui_MainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi(self) 
        self.setWindowIcon(QIcon('science.png')) 
        m = PlotCanvas(self, width=7, height=5.5)
        m.move(400,10)
        self.pushButton.clicked.connect(self.draw1)
 
    def draw1(self):
        global V0
        V0=100
        PlotCanvas()
        
        
class PlotCanvas(FigureCanvas):
 
    def __init__(self, parent=None, width=5, height=4, dpi=100):
        fig = Figure(figsize=(width, height), dpi=dpi)
        FigureCanvas.__init__(self, fig)
        self.setParent(parent)
        rect = fig.patch 
        rect.set_facecolor('#19232d')
        fig.clear()
        FigureCanvas.setSizePolicy(self,
                QSizePolicy.Expanding,
                QSizePolicy.Expanding)
        FigureCanvas.updateGeometry(self)
        self.plot()
 
    def Lenght(self,V0, a, m, k): #Расчёт траектории (совокупность координат (x,y) )
        print(V0, a, m, k)
        V_x = [V0 * math.cos(a * math.pi / 180)]
        V_y = [V0 * math.sin(a * math.pi / 180)]
        x_m = [0]
        y = [0]
        i = 0
        dt = 0.0001
        g = 9.8195
        while y[i] >= 0:
            V_x.append(V_x[i] - k * V_x[i] * dt / 1)
            V_y.append(V_y[i] - (g + k * V_y[i] / 1) * dt)
            x_m.append(x_m[i] + V_x[i] * dt)
            y.append(y[i] + V_y[i] * dt)
            i += 1
        return x_m, y
    def plot(self):
        global V0, a, m, k,line1
        x_m, y = self.Lenght(V0, a, m, k) 
        ax = self.figure.add_subplot(111) 
        #Косметика графика
        rect = ax.patch
        rect.set_facecolor('#19232d')
        ax.grid()  
        ax.tick_params(axis='x', colors='white')
        ax.tick_params(axis='y', colors='white')
        ax.set_xlabel('Путь', fontsize=20, color='#778899')
        ax.set_ylabel('Высота', fontsize=20, color='#778899')
       #Отрисовка
        ax.plot(x_m, y, color="#ffab03")
       
        self.draw()
        print(1)
 
def main():
    app = QtWidgets.QApplication(sys.argv)  
    window = ExampleApp()  
    app.setStyleSheet(qdarkstyle.load_stylesheet(qt_api='pyqt5'))
    window.show()  
    app.exec_()  
 
if __name__ == '__main__':  
    main()
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.10.2020, 14:44
Ответы с готовыми решениями:

Matplotlib и PyQt5 Как отобразить график ?
Привет всем! Прошу помощи! Есть график который выводится по средствам matplotlib'a в Jupytere. fig = plt.figure(figsize=(20, 10)) ...

Как обновлять график matplotlib в QWidget?
Доброго времени суток! Я делал школьный проект на python И всё бы ничего, но у меня не получается обновлять график функции в своей...

Как построить график линии уровня matplotlib?
День добрый, есть у меня есть три файла, в которых хранятся значения x,y,z. Как мне построить график линии уровня из данных, хранящихся в...

1
Эксперт Python
 Аватар для dondublon
4651 / 2071 / 366
Регистрация: 17.03.2012
Сообщений: 10,180
Записей в блоге: 6
02.11.2020, 10:25
Для начала - избавьтесь от глобалок.
По структуре программы у вас каша. PlotCanvas() создаёт класс. Создаёт объект-картинку вместе с рисованием графика. Разделите.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.11.2020, 10:25
Помогаю со студенческими работами здесь

Как удалить график matplotlib в PyQt5
Есть следующее задание: Задача 1. В созданном окне вам необходимо построить график функций на осях x и y по заданной формуле: (формула). ...

Как на форму QT Designer вывести график из matplotlib?
Добрый день, пытаюсь добавить на форму QT Designer график из matplotlib. Для этого использую функцию из контекстного меню promoted to ...

Правильно перерисовать график flot.jquery
Здравствуйте. На страничке, по умолчанию строится график, с помощью плагина flot.jquery var options = { xaxis: {...

Chart. Перерисовать график с новыми данными
Я вывел график в чарте. массив значений у меня полностью изменился. как мне теперь перерисовать его?

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru