Как показать графики matplotlib в python

Я уверен, что конфигурация matplotlib для python верна, так как я использовал ее для построения некоторых цифр.

Но сегодня он просто перестает работать по какой-то причине. Я протестировал его с помощью действительно простого кода, например:

import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0, 5, 0.1)
y = np.sin(x)
plt.plot(x, y)

нет ошибки, но нет никакой фигуры.

Я использую python 2.6, Eclipse в Ubuntu

Ответы

Ответ 1

В matplotlib у вас есть два основных варианта:

  • Создайте свои сюжеты и нарисуйте их в конце:

    import matplotlib.pyplot as plt
    
    plt.plot(x, y)
    plt.plot(z, t)
    plt.show()
    
  • Создайте свои сюжеты и нарисуйте их, как только они будут созданы:

    import matplotlib.pyplot as plt
    from matplotlib import interactive
    interactive(True)
    
    plt.plot(x, y)
    raw_input('press return to continue')
    
    plt.plot(z, t)
    raw_input('press return to end')
    

Ответ 2

Вы должны использовать plt.show() в конце, чтобы увидеть график

Ответ 3

В случае, если кто-то еще окажется здесь с ноутбуками Jupyter, вам просто нужно

%matplotlib inline

Назначение "% matplotlib inline"

Ответ 4

Сохраните график как png

plt.savefig("temp.png")

Ответ 5

Вам нужно использовать метод show(), когда вы выполнили все инициализации в своем коде, чтобы увидеть завершенную версию сюжета:

import matplotlib.pyplot as plt

plt.plot(x, y)
................
................
plot.show()

Ответ 6

plt.plot(X,y) просто рисует график на холсте. Чтобы просмотреть график, вы должны указать plt.show() после plt.plot(X,y). Так,

import matplotlib.pyplot as plt
X = //your x
y = //your y
plt.plot(X,y)
plt.show()

Ответ 7

import numpy as np

import matplotlib.pyplot as plt

x1 = 5 * np.random.rand(50)

x2 = 5 * np.random.rand(50) + 25

x3 = 30 * np.random.rand(25)

x = np.concatenate((x1, x2, x3))

y1 = 5 * np.random.rand(50)

y2 = 5 * np.random.rand(50) + 25

y3 = 30 * np.random.rand(25)

y = np.concatenate((y1, y2, y3))

color_array = ['b'] * 50 + ['g'] * 50 + ['r'] * 25

plt.scatter(x, y, s=[50], marker='D', c=color_array)

plt.show()