Хобрук: Ваш путь к мастерству в программировании

Как сделать трехмерную гистограмму двумерного векторного распределения в python/plotly

Итак, в основном у меня есть список 2D-векторов в питоне, и я хочу сделать 3D-визуализацию распределения этого вектора, например, кривой поверхности, через график. Я оставлю образец первых 4 компонентов моего вектора

[[0.35431211986827776, 0.21438054570807566], [0.35431211986827776, 0.21438054570807566], [0.35431211986827776, 0.21438054570807566], [0.35431211986827776, 0.21438054570807566],

поэтому я использовал seaborn.kdeplot() для визуализации, предоставив только 2D-визуализацию KDE:

Оценщик KDE для двумерной выборки

Но мне нужен был трехмерный результат, как на этом двумерном графике нормального распределения, где оси X и Y представляют собой двумерную матрицу, а ось Z — PDF:

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

Я думаю, мне просто нужно найти хорошую оценку PDF для каждого вектора в моем списке. Есть ли способ подогнать KDE к моим данным, чтобы получить это приблизительное распределение каждого вектора, а затем построить поверхность?

Большое спасибо


  • Не могли бы вы предоставить полные данные где-нибудь, чтобы можно было попробовать поиграть с ними? 03.06.2020

Ответы:


1

Вот как это сделать:

x = np.random.normal(5, 10, 100000)
y = np.random.normal(10, 3, 100000)
h = np.histogram2d(x, y, bins=50)

def bin_centers(bins):
    centers = (bins + (bins[1]-bins[0])/2) [:-1]    
    return centers

x_bins_centers = bin_centers(h[1])
y_bins_centers = bin_centers(h[2])

df = pd.DataFrame(h[0], index=x_bins_centers, columns=y_bins_centers)
fig = go.Figure(data=[go.Surface(z=df)])
fig.show()

Результат:

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

03.06.2020
  • Это то, что ты искал? 03.06.2020
  • Не за что. Было бы здорово, если бы вы могли принять ответ :) 03.06.2020
  • Новые материалы

    Создание кнопочного меню с использованием HTML, CSS и JavaScript
    Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

    Внедрите OAuth в свои веб-приложения для повышения безопасности
    OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

    Классы в JavaScript
    class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

    Как свинг-трейдеры могут использовать ИИ для больших выигрышей
    По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

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

    Обзор: Машинное обучение: классификация
    Только что закончил третий курс курса 4 часть специализации по машинному обучению . Как и второй курс, он был посвящен низкоуровневой работе алгоритмов машинного обучения. Что касается..

    Разработка расширений Qlik Sense с qExt
    Использование современных инструментов веб-разработки для разработки крутых расширений Вы когда-нибудь хотели кнопку для установки переменной в приложении Qlik Sense? Когда-нибудь просили..