Bohrium
robot
新建

空间站广场

论文
Notebooks
比赛
课程
Apps
我的主页
我的Notebooks
我的论文库
我的足迹

我的工作空间

任务
节点
文件
数据集
镜像
项目
数据库
公开
Bk2_Ch13_三维点图_04Dirichlet分布概率密度
《可视之美》
python
鸾尾花书
数据可视化
《可视之美》python鸾尾花书数据可视化
刀刀
发布于 2024-05-28
推荐镜像 :Basic Image:bohrium-notebook:2023-04-07
推荐机型 :c2_m4_cpu
Dirichlet分布概率密度
自定义可视化函数

©️ Copyright 2024 @ Authors
共享协议:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
作者信息:Notebook原地址为 https://github.com/Visualize-ML

代码
文本

Chapter 13

Dirichlet分布概率密度

Book_2《可视之美》 | 鸢尾花书:从加减乘除到机器学习

代码
文本
[1]
import numpy as np
import scipy.stats as st
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

import os
# 如果文件夹不存在,创建文件夹
if not os.path.isdir("Figures"):
os.makedirs("Figures")
代码
文本

自定义可视化函数

代码
文本
[2]
def visualize_Dirichlet(alpha_array, num = 50):

x1_ = np.linspace(0,1,num + 1)
x2_ = np.linspace(0,1,num + 1)

xx1_, xx2_ = np.meshgrid(x1_, x2_)

xx3_ = 1.0 - xx1_ - xx2_
xx3_ = np.where(xx3_ > 0.0005, xx3_, np.nan)

rv = st.dirichlet(alpha_array)

PDF_ff_ = rv.pdf(np.array(([xx1_.ravel(), xx2_.ravel(), xx3_.ravel()])))
PDF_ff_ = np.reshape(PDF_ff_, xx1_.shape)

fig = plt.figure(figsize=(5, 5))
ax = plt.axes(projection="3d")

# Creating plot
PDF_ff_ = np.nan_to_num(PDF_ff_)
ax.scatter3D(xx1_.ravel(),
xx2_.ravel(),
xx3_.ravel(),
c=PDF_ff_.ravel(),
alpha = 1,
marker='.',
cmap = 'RdYlBu_r')

ax.set_proj_type('ortho')
ax.xaxis.set_pane_color((1.0, 1.0, 1.0, 1.0))
ax.yaxis.set_pane_color((1.0, 1.0, 1.0, 1.0))
ax.zaxis.set_pane_color((1.0, 1.0, 1.0, 1.0))
# ax.set_xticks(np.linspace(0,1,6))
# ax.set_yticks(np.linspace(0,1,6))
# ax.set_zticks(np.linspace(0,1,6))

ax.set_xticks([0,1])
ax.set_yticks([0,1])
ax.set_zticks([0,1])

ax.set_xlim(x1_.min(), x1_.max())
ax.set_ylim(x2_.min(), x2_.max())
ax.set_zlim3d([0,1])
# ax.view_init(azim=20, elev=20)
ax.view_init(azim=30, elev=30)
ax.set_xlabel(r'$\theta_1$')
ax.set_ylabel(r'$\theta_2$')
ax.set_zlabel(r'$\theta_3$')
ax.set_box_aspect(aspect = (1,1,1))

ax.grid()
title = '_'.join(str(v) for v in alpha_array)
title = 'alphas_' + title

fig.savefig('Figures/' + title + '.svg', format='svg')
代码
文本
[3]
alpha_array = [1, 2, 2]
visualize_Dirichlet(alpha_array)
代码
文本
[4]
alpha_array = [2, 1, 2]
visualize_Dirichlet(alpha_array)
代码
文本
[5]

alpha_array = [2, 2, 1]
visualize_Dirichlet(alpha_array)
代码
文本
[6]

alpha_array = [4, 2, 1]
visualize_Dirichlet(alpha_array)
代码
文本
[7]
alpha_array = [1, 1, 1]
visualize_Dirichlet(alpha_array)
代码
文本
[8]
alpha_array = [2, 2, 2]
visualize_Dirichlet(alpha_array)
代码
文本
[9]
alpha_array = [4, 4, 4]
visualize_Dirichlet(alpha_array)
代码
文本
[10]
alpha_array = [8, 8, 8]
visualize_Dirichlet(alpha_array)
代码
文本
[11]
# Repo: https://github.com/Visualize-ML
# Book 2 Beauty of Visualization | From Basic Arithmetic to Machine Learning
# Published and copyrighted by Tsinghua University Press
# Beijing, China, 2023
代码
文本
《可视之美》
python
鸾尾花书
数据可视化
《可视之美》python鸾尾花书数据可视化
点个赞吧
本文被以下合集收录
Book2《可视之美》 | 鸢尾花书:从加减乘除到机器学习
刀刀
更新于 2024-06-03
198 篇3 人关注
推荐阅读
公开
Bk2_Ch5_色彩空间_02三维空间散点展示RGB色彩空间
《可视之美》python鸾尾花书数据可视化
《可视之美》python鸾尾花书数据可视化
刀刀
发布于 2024-05-21
公开
Bk2_Ch25_距离_02不同方式展示二元欧氏距离
《可视之美》python鸾尾花书数据可视化
《可视之美》python鸾尾花书数据可视化
刀刀
发布于 2024-05-29