Невозможно нарисовать KDE на python

#python

#python

Вопрос:

Я создал броуновское движение, а затем взял последние значения из 1000 записей, повторяющиеся 10000 раз. Я смог построить гистограмму, используя следующий код следующим образом:

 import seaborn as sns
import matplotlib.pyplot as plt
\BM represents list of values generated by the Brownian motion
fig, (ax1,ax2) = plt.subplots(2)
ax1.hist(BM[:,-1],12)
  

Я смог нарисовать KDE следующим образом, однако я не смог объединить две диаграммы вместе. Может кто-нибудь мне помочь?

 sns.kdeplot(data=BM[:,-1])
  

введите описание изображения здесь

Комментарии:

1. Было бы неплохо, если бы вы добавили решения, которые вы пробовали!

2. Я загрузил некоторые из методов, которые я использовал.

3. Вы должны указать, что sns plt и BM есть. Хотя некоторые из них очевидны, но не для всех остальных, которые потенциально могут ответить на ваш вопрос. Если вы не собираетесь публиковать мини-воспроизводимый пример , вам следует уточнить все имена.

4. Как выглядит ваш BM[:,-1] ? Какую ошибку вы получаете?

5. Масштаб оси y здесь является проблемой. Я предлагаю вам нормализовать гистограмму или использовать seaborn.distplot

Ответ №1:

Попробуйте использовать sns.kdeplot(BM['col1']) where 'col1' — это имя столбца, который вы хотите отобразить.

Я приведу вам воспроизводимый пример, который работает для меня.

 import seaborn as sns
import pandas as pd
import numpy as np
BM = pd.DataFrame(np.array([-0.00871515, -0.0001227 , -0.01449098, 0.01808527, 0.00074193, 0.01145541]
                  , columns=['col1'])
BM.head(2)

    col1
0   -0.008715
1   -0.000123

sns.kdeplot(BM['col1'])
  

введите описание изображения здесь

Редактировать на основе вашего дополнительного вопроса:

Чтобы получить гистограмму и график kde, используйте этот:

 sns.distplot(BM['col1'])
  

введите описание изображения здесь

Комментарии:

1. Я думаю, проблема в том, как вы получаете доступ к BM. Вы пробовали то, что я делал? np.random.rand — это массив numpy. Попробуйте BM = pd.DataFrame(np.array([-0.00871515, -0.0001227 , -0.01449098, 0.01808527, 0.00074193, 0.01145541]), столбцы=[‘col1’])

2. Привет, я пробовал то, что вы делали, но все еще не работает. Я повторил свой первый метод, и теперь он работает. Однако я не смог отобразить их KDE на гистограмме. Обратитесь к моему первому сообщению (отредактированному). Вы знаете, как это сделать?

3. Как вы смогли отобразить KDE на гистограмме, я пробовал, но это не работает. kde и гистограмма идут отдельно.

4. Я отредактировал ответ, чтобы использовать точно такой же ввод, который вы мне дали.

5. К сожалению, будучи новым пользователем, у меня недостаточно репутации, чтобы поднять вашу точку зрения. Извините. Однако я принял ваш ответ. Я не знал, что должен был сделать это раньше.