Python эквивалентно «держись» в Matlab

31

Есть ли явная эквивалентная команда в Python matplotlib для Matlab hold on? Я пытаюсь построить все мои графики на тех же топорах. Некоторые графики генерируются внутри цикла for, и они отображаются отдельно от su и sl:

import numpy as np
import matplotlib.pyplot as plt

for i in np.arange(1,5):
    z = 68 + 4 * np.random.randn(50)
    zm = np.cumsum(z) / range(1,len(z)+1)
    plt.plot(zm)
    plt.axis([0,50,60,80])

plt.show()

n = np.arange(1,51)
su = 68 + 4 / np.sqrt(n)
sl = 68 - 4 / np.sqrt(n)

plt.plot(n,su,n,sl)

plt.axis([0,50,60,80])
plt.show()
  • 6
    Вы имеете в виду plt.hold(True) ?
  • 0
    Возможный обман нескольких сюжет в одной фигуре в питоне
Показать ещё 3 комментария
Теги:
matplotlib
graph

3 ответа

28
Лучший ответ

Просто позвоните plt.show() в конец:

import numpy as np
import matplotlib.pyplot as plt

plt.axis([0,50,60,80])
for i in np.arange(1,5):
    z = 68 + 4 * np.random.randn(50)
    zm = np.cumsum(z) / range(1,len(z)+1)
    plt.plot(zm)    

n = np.arange(1,51)
su = 68 + 4 / np.sqrt(n)
sl = 68 - 4 / np.sqrt(n)

plt.plot(n,su,n,sl)

plt.show()
  • 3
    Примечание: это не работает в случае интерактивного ввода из командной строки. Работает нормально, если запустить в скрипте.
19

Вы можете использовать следующее:

plt.hold(True)
  • 8
    Эта функция устарела, какое-либо альтернативное решение, подобное этому?
0

Функция hold on включена по умолчанию в matplotlib.pyplot. Поэтому каждый раз, когда вы вызываете plt.plot() до plt.show(), рисунок добавляется в график. Запуск plt.plot() после того, как функция plt.show() приведет к перерисовке всего изображения.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню