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

matplotlib - некорректно выводит 2 график на 2 фигуре

29.01.2024, 13:35. Показов 1814. Ответов 6

Студворк — интернет-сервис помощи студентам
Есть пару функций, которые считывают формулу функции и создают список координат, чтобы потом вывести на экран 2 графика:
Python
1
2
3
4
5
6
7
8
9
10
x = get_plot_nums('1x^3')
y = get_plot_nums('1x^4')
 
def show_plot(x1: list, y1: list, x2: list, y2: list):
    plt.plot(x1, y1, x2, y2)
    plt.grid()
    plt.show()
 
 
show_plot(x[0], x[1], y[0], y[1])
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def get_plot_nums(pf):  #'1x^3'
    x_list = list(i for i in range(-1000, 1001))
    y_list = list(map(lambda num: get_result(pf, num), x_list))
    return x_list, y_list
 
def get_result(pf: str, num: [int, float]):
    return eval(replace_x(correct_plot_formula(pf), num))
 
def replace_x(pf: str, number: [int, float]):
    return pf.replace('x', f"({number})")
 
def correct_plot_formula(pf: str):
    pf = pf.replace('^', ' ** ')
    pf = pf.replace('x', ' * x')
    return pf
Функции place_x и correct_plot_formula нужны для того, чтобы я мог с текстового поля считывать формулу. Эти функции работают правильно.
Но когда я вывожу 2 графика на 1 фигуру show_plot, то 1-й график отображается как нужно, а второй как прямая линия. Причем, если менять значение (формулу) 2-го графика, то он всё равно отображается как линия на 0-х координатах. Кто-нибудь сталкивался с этим, или от чего возникла данная проблема?
Миниатюры
matplotlib - некорректно выводит 2 график на 2 фигуре  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.01.2024, 13:35
Ответы с готовыми решениями:

График в matplotlib
Добрый день. Имеем два массива: и Только это массив не времени, а времени выполнения (т.е. задача выполнялась 4 часа 8 минут 42...

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

График matplotlib
Добрый день,ситуация в том,что график необходимо построить таким образом,чтобы на оси x конкретные(все) значения массива q и добавить линии...

6
Любознательный
 Аватар для YuS_2
7406 / 2259 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
29.01.2024, 18:10
Цитата Сообщение от No_name131 Посмотреть сообщение
Кто-нибудь сталкивался с этим, или от чего возникла данная проблема?
А Вы сравнивали граничные значения функций?
1000000000
1000000000000

Промасштабируйте графики.
3
0 / 0 / 0
Регистрация: 09.02.2023
Сообщений: 9
29.01.2024, 18:28  [ТС]
Масштаб тут не причем. Если взять 2 графика- параболу, то 1 из них явно не должен стоять на месте:

x = get_plot_nums('1x^4')
y = get_plot_nums('1x^2')

Я ещё попробовал уменьшить количество координат. После 100 - 2 график ломается.
Можно сделать вывод, что для 2го графика неправильно считается значение y-координаты, но это не так, потому что для первого графика всё хорошо читается. Если отображение 1-го и 2-го графика переставить местами, то соответственно 2-й график отображается как должен, а 1-й - как линия, где y-координата всегда = 0.
Миниатюры
matplotlib - некорректно выводит 2 график на 2 фигуре  
0
0 / 0 / 0
Регистрация: 09.02.2023
Сообщений: 9
29.01.2024, 18:30  [ТС]
Покажите ваш код, пожалуйста, я видимо что-то делаю не так, но не понятно что.
0
Любознательный
 Аватар для YuS_2
7406 / 2259 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
29.01.2024, 18:34
Цитата Сообщение от No_name131 Посмотреть сообщение
Масштаб тут не причем.
ну, тогда ищите... может быть чего и найдете...

Цитата Сообщение от No_name131 Посмотреть сообщение
Если взять 2 графика- параболу, то 1 из них явно не должен стоять на месте
Уверенность в правоте не должна переходить в самоуверенность...
Вы видели промасштабированный выше график?
Как Вы думаете, что за число на нем 1e9 по оси y? А на Вашем тоже есть число 1e12?
1
5517 / 2870 / 571
Регистрация: 07.11.2019
Сообщений: 4,761
29.01.2024, 22:29
No_name131, к чему эта гигантомания? Советую выбрать интервал x поменьше, например от -2 до 2 с шагом 0.01, тогда можно увидеть пересечения графиков функций...
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38200 / 21132 / 4310
Регистрация: 12.02.2012
Сообщений: 34,739
Записей в блоге: 14
03.02.2024, 16:56
Цитата Сообщение от No_name131 Посмотреть сообщение
Масштаб тут не причем.
как раз "при чём"!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.02.2024, 16:56
Помогаю со студенческими работами здесь

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

Библиотека matplotlib не выводит изображение
import numpy as np import matplotlib.pyplot as plt data_int = np.arange(0, 256).reshape(16, 16) data_float = np.linspace(0, 1,...

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

Построить график в matplotlib
Построить график единичного прямоугольного импульса шириной 300 мс, с центром в момент времени 4 с. С помощью matplotlib

matplotlib перевернутый график статистики
Здравствуте. Как используя matplotlib вывести линейный график в перевернутом виде, т.е. чем больше значение в данных - тем ниже точка по...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru