Частота построения графика по оси X - PullRequest
0 голосов
/ 07 мая 2019

Я должен построить кривую в форме перевернутой буквы v или палатки (лапласиан).

Предоставление здесь примеров данных с синтаксисом Python

import matplotlib.pyplot as plt
#x = np.linspace(-8., 8., 5000)
x= np.array([0, 2, 4, 5, 1, 0, 5, 1, 4, 5, 8, 3, 6])
pdf = np.exp(-abs(x-loc)/scale)/(2.*scale)
plt.plot(x, pdf)

, когда я строю это, это дает мне странный вид графика.Есть ли простой способ построить это так, чтобы у меня была частота элементов в x по оси x и pdf по оси y?

Для дальнейшего разъяснения - мне нужно индексировать pdf для соответствующих значений элементов в x, а затем это соответствующее значение x имеет n-frequency.Мне нужно построить n-frequency против pdf.

Для отладки вы можете раскомментировать x = np.linspace(-8., 8., 5000) и прокомментировать x= np.array([0, 2, 4, 5, 1, 0, 5, 1, 4, 5, 8]), вы увидите перевернутую V-кривую.

Я в порядке с решением или советую в R или Python.

Пример того, как должна выглядеть кривая

enter image description here

1 Ответ

2 голосов
/ 07 мая 2019
import numpy as np 
import matplotlib.pyplot as plt
x = np.random.normal(scale=5, size=50000) # create example data
bins = np.linspace(-15, 15, 31) # make bins to count occurrences within 
counts, bins = np.histogram(x, bins) # do the counting
# counts is the number of occurences of x in each bin 
bins = (bins[1:]+bins[:-1])/2.0 # take the midpoints of the bins for plotting
plt.loglog(bins, counts) # you'll only get the triangle shape in log-log space

с правильными данными, заменяющими x Я думаю, это то, что вы хотите. Вам нужно посчитать количество элементов в каждой корзине. Ссылка, которую вы прикрепили, говорит вам, что такое мусорные ведра. Вы можете сделать этот массив с np.linspace или np.arange.

Дополнение. Я недавно узнал, что если вы хотите построить гистограмму в пространстве журналов регистрации, разумно использовать логарифмически расположенные интервалы, чтобы точки равномерно располагались в пространстве журналов регистрации. Вы можете сделать это с np.geomspace.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...