Почему matplotlib не отображает диаграмму со значениями, сгенерированными с использованием numpy случайного массива? - PullRequest
0 голосов
/ 02 апреля 2020

Я написал следующий код,

import numpy as np
import matplotlib.pyplot as plt
x=np.random.randint(0,10,[1,5])
y=np.random.randint(0,10,[1,5])
x.sort(),y.sort()
fig, ax=plt.subplots(figsize=(10,10))
ax.plot(x,y)
ax.set( title="random data plot", xlabel="x",ylabel="y")

Я получаю пустую цифру. Тот же код печатает диаграмму, если я вручную присваиваю значения ниже для x и y и не использую случайную функцию.

x=[1,2,3,4]
y=[11,22,33,44]

Я что-то упускаю или делаю что-то не так.

Ответы [ 2 ]

4 голосов
/ 02 апреля 2020

x=np.random.randint(0,10,[1,5]) возвращает массив, если вы задаете фигуру как [1,5]. Либо вы хотите x=np.random.randint(0,10,[1,5])[0] или x=np.random.randint(0,10,size = 5). См .: https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.random.randint.html

1 голос
/ 02 апреля 2020

Matplotlib по умолчанию не отображает маркеры, только линия. Согласно комментарию @Can, matplotlib интерпретирует ваш массив (1, 5) как 5 различных наборов данных, каждый из которых имеет 1 точку, поэтому нет линии, поскольку нет второй точки.

Если вы добавите маркер в свой тогда вы можете увидеть, что данные на самом деле строятся, но, вероятно, не так, как вы. wi sh:

import matplotlib.pyplot as plt
import numpy as np
x=np.random.randint(0,10,[1,5])
y=np.random.randint(0,10,[1,5])
x.sort(),y.sort()
fig, ax=plt.subplots(figsize=(10,10))
ax.plot(x,y, marker='.') # <<< marker for each point added here
ax.set( title="random data plot", xlabel="x",ylabel="y")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...