当前位置: 首页 > news >正文

python绘图之三维核密度图

三维核密度图是一种直观的可视化工具,用于展示多变量数据的联合分布情况。它通过高度(密度)的变化清晰地呈现数据的聚集区域和稀疏区域,帮助分析数据中的模式、异常点以及变量之间的关系,从而为数据建模、假设检验、决策支持等提供重要依据,尤其适用于复杂数据结构的可视化和分析。

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# 设置随机种子以保证结果可复现
np.random.seed(42)  
# 定义样本数量
n_samples = 1000  

# 随机生成模拟数据
# 随机生成年龄数据,范围为18到64岁
age = np.random.randint(18, 65, size=n_samples)  
# 随机生成BMI数据,范围为15到50
bmi = np.random.uniform(15, 50, size=n_samples)  
# 随机生成医疗费用数据,假设其服从伽马分布,形状参数为10,比例参数为1000
charges = np.random.gamma(10, scale=1000, size=n_samples)  

# 将生成的数据赋值给x, y, z,分别对应年龄、BMI和费用
x = age
y = bmi
z = charges

# 使用np.histogram2d计算二维直方图的核密度估计
# 参数bins=50表示将x和y的范围分别划分为50个区间
# 参数density=True表示计算的是密度而非频数
density, x_edges, y_edges = np.histogram2d(x, y, bins=50, density=True)  
# 对密度值进行归一化,使其总和为1
density /= density.sum()  

# 创建网格坐标,用于绘制三维曲面
# x_edges[:-1]和y_edges[:-1]分别表示x和y的区间左端点
x_grid, y_grid = np.meshgrid(x_edges[:-1], y_edges[:-1])  

# 绘制三维核密度图
fig = plt.figure(figsize=(10, 8))  # 设置图形大小
ax = fig.add_subplot(111, projection='3d')  # 创建三维坐标轴
# 绘制三维曲面图
# x_grid和y_grid是网格坐标,density.T是转置后的密度矩阵
# cmap='viridis'表示使用viridis颜色映射,edgecolor='none'表示不绘制边缘线
ax.plot_surface(x_grid, y_grid, density.T, cmap='viridis', edgecolor='none')  
# 设置坐标轴标签
ax.set_xlabel('Age')  
ax.set_ylabel('BMI')  
ax.set_zlabel('Density')  
# 设置图形标题
ax.set_title('3D Kernel Density Estimation')  
# 显示图形
plt.show()

相关文章:

  • PostgreSQL 中进行数据导入和导出
  • BladeX框架接口请求跨域
  • 我的AI工具箱Tauri版-ClothSwapSemanticSegmentationFullAuto语义切割全自动换装
  • C++11相较于C++98的新特性介绍:列表初始化,右值引用与移动语义
  • 高压风机专用32位单片机MM32SPIN080G
  • 车载资通讯系统结合5G技术!专业ESD对策打造高可靠度车联网
  • Hadoop架构详解
  • Lumoz Chain正式上线:AI 时代的新算力破局者
  • 第38天:安全开发-JavaEE应用SpringBoot框架MyBatis注入Thymeleaf模版注入
  • 端口映射/内网穿透方式及问题解决:warning: remote port forwarding failed for listen port
  • Flutter_学习记录_实现列表上拉加载更多的功能
  • 智驾大模型常见技术指标及含义
  • 【R语言】广义加性模型gam
  • Element Plus中el-select选择器的下拉选项列表的样式设置
  • Mercury、LLaDA 扩散大语言模型
  • matlab机器人机械臂无人机python自动驾驶无人船控制规划ROS避障
  • 派可数据BI接入DeepSeek,开启智能数据分析新纪元
  • 2025年三个月自学手册 网络安全(黑客技术)
  • JSP + Servlet 实现 AJAX(纯JS版)
  • Node.js与MySQL的深入探讨
  • 网站中常用的功能模块/聊城seo整站优化报价
  • 亿级别网站开发注意/手机百度网页版登录入口
  • 网站独立模块是什么意思/代写文章价格表
  • 小型手机网站建设哪家好/网页搜索引擎
  • 鸿蒙最新版本/有没有免费的seo网站
  • 广州的一起做网站怎么样/网站排名优化教程