Задать вопрос
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
  • Вопрос задан
  • 134 просмотра
Подписаться 1 Простой 7 комментариев
Пригласить эксперта
Ответы на вопрос 1
@mr_secret
Дело в строчке
plt.ylim(0, 5)  # Максимальное давление в миллионах Па

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

678ffa334c218120848834.jpeg

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

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

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

Похожие вопросы
SpectrumData Екатеринбург
от 200 000 до 300 000 ₽
Greenway Global Новосибирск
от 150 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽