Задать вопрос
i229194964
@i229194964
Веб разработчик

Почему не могу получить второй график?

Код программы
import numpy as np
import matplotlib.pyplot as plt

# Исходные данные для варианта 33
P0 = 42e6  # Начальное давление, Па (42 МПа)
T0 = 500  # Начальная температура, К
d = 0.03  # Диаметр трубы, м
v_max = 175  # Максимальная скорость поршня, м/с
gamma = 1.3  # Показатель адиабаты для CO₂

# Временная шкала
time = np.linspace(0, 0.012, 300)  # 300 временных шагов

# Зависимость скорости поршня от времени (экспоненциальный рост)
v_p = v_max * (1 - np.exp(-time / 0.002))

# Давление на стенках трубы и на поршне
p_wall = P0 * (1 - 0.5 * time / max(time))  # Давление на стенках трубы
p_piston = P0 * (1 - 0.4 * time / max(time))  # Давление на поршне

# Построение графиков
plt.figure(figsize=(10, 8))

# График 1: Скорость поршня от времени
plt.subplot(2, 1, 1)
plt.plot(time, v_p, 'k-', linewidth=2)
plt.xlabel('t, с', fontsize=12)
plt.ylabel('v_p, м/с', fontsize=12)
plt.title('a) Зависимость скорости поршня от времени', loc='left', fontsize=12)
plt.grid(True)
plt.xlim(0, max(time))
plt.ylim(0, 180)  # Диапазон скорости
plt.xticks(fontsize=10)
plt.yticks(fontsize=10)

# График 2: Давление на стенках трубы и на поршне от времени
plt.subplot(2, 1, 2)
plt.plot(time, p_wall / 1e6, 'k-', linewidth=2, label='Давление на стенках трубы')
plt.plot(time, p_piston / 1e6, 'k--', linewidth=2, label='Давление на поршне')
plt.xlabel('t, с', fontsize=12)
plt.ylabel('p * 10⁶, Па', fontsize=12)
plt.title('б) Зависимость давления от времени', loc='left', fontsize=12)
plt.legend(fontsize=10, loc='upper right')
plt.grid(True)
plt.xlim(0, max(time))
plt.ylim(0, 5)  # Максимальное давление в миллионах Па
plt.xticks(fontsize=10)
plt.yticks(fontsize=10)

# Настройка отображения
plt.tight_layout()
plt.show()



Результат который должен получиться
673db6b9c4c2f218764239.png
  • Вопрос задан
  • 145 просмотров
Подписаться 1 Простой 7 комментариев
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Skillbox
    Профессия Python-разработчик + ИИ
    10 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@mr_secret
Дело в строчке
plt.ylim(0, 5)  # Максимальное давление в миллионах Па

Если её убрать можно увидеть, что y-координаты всех значений на нижнем графике > 20, в то время как данная строчка кода ставит верхнюю границу по оси y лишь 5.

678ffa334c218120848834.jpeg

Другой способ в этом убедиться, не удалять данную строку, а пролистать нижний график вверх.

Таким образом, у Вас неверно высчитываются значения координат точек для нижнего графика. Перепроверьте их.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Краснодар
от 220 000 до 300 000 ₽
ITK academy Краснодар
от 75 000 ₽
DimaTech Ltd Краснодар
от 140 000 до 140 000 ₽