新建
Bk2_Ch13_三维点图_04Dirichlet分布概率密度

刀刀

推荐镜像 :Basic Image:bohrium-notebook:2023-04-07
推荐机型 :c2_m4_cpu
赞
目录
©️ 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
代码
文本
点个赞吧
本文被以下合集收录
Book2《可视之美》 | 鸢尾花书:从加减乘除到机器学习

刀刀

更新于 2024-06-03
198 篇3 人关注
推荐阅读
公开
Bk2_Ch5_色彩空间_02三维空间散点展示RGB色彩空间
刀刀

发布于 2024-05-21
公开
Bk2_Ch25_距离_02不同方式展示二元欧氏距离
刀刀

发布于 2024-05-29