Как построить график случайного массива с интервалом 20 минут и 8 мс? - PullRequest
0 голосов
/ 11 октября 2019

У меня проблема с построением графика в Python. Мне нужно создать случайный массив и массив времени. Тогда я буду строить график с ними. Временной массив должен начинаться с 0 и заканчиваться через 20 минут. Интервал временного массива должен составлять 8 миллисекунд.

Я пытался написать код, подобный следующему: (Но рисунок не выглядит хорошим. Может ли кто-нибудь мне помочь, пожалуйста?)

Код:

import numpy as np
import matplotlib.pyplot as plt

random_array = np.random.rand(150000)
time_array = np.linspace(0, 1200, 150000)

# The number 1200 is the conversion of 20 minutes to seconds. 
# And the number 150000 is for interval. (1200 second / 0.008 second )

plt.plot(time_array, random_array)

plt.xlabel('Time (second)')
plt.ylabel('Value')

Ответы [ 2 ]

1 голос
/ 11 октября 2019

Я сделал несколько изменений в вашем коде и загрузил график.

(1) изменил plt.plot на plt.scatter

(2) переместил ваши комментарии наверхи использовал синтаксис комментария # вместо "

(3) добавил np.sort () к данным переменной y, просто чтобы было легче увидеть в этом примере.

  • Для вашего фактического набора данных не используйте np.sort (), потому что в вашем наборе данных переменная времени (ось X), вероятно, выровнена с вашей независимой переменной (ось Y)… сортировка приведет к путанице в данных.
  • Без np.sort () в этом примере он просто показывает блок случайных точек разброса.
# (The number 1200 is the conversion of 20 minutes to seconds. 
# And the number 150000 is for interval. (1200 second / 0.008 second ))
import numpy as np
import matplotlib.pyplot as plt
random_array= np.random.rand(150000)
time_array= np.linspace(0,1200,150000) 
plt.scatter(time_array,np.sort(random_array))
plt.xlabel('Time (second)')
plt.ylabel('Value')

enter image description here

0 голосов
/ 11 октября 2019

насколько я могу судить, ваш код в порядке, я просто попытался бы выразить ваши ограничения непосредственно в коде, например:

import numpy as np

time_seconds = np.arange(0, 20 * 60, 0.008)
random_values = np.random.rand(*time_seconds.shape)

, то есть просто вычислить 20 * 60 секунд и использовать 0.008 непосредственно, помещая единицы измерения где-то в имени переменной. Python может решить, что это будет 150 тыс. Образцов для нас (это компьютер!), И мы просто повторно используем это значение для выборки случайных значений

...