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

【数据可视化-29】食物营养成分数据可视化分析

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN人工智能领域的优质创作者,提供AI相关的技术咨询、项目开发和个性化解决方案等服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:xf982831907

💬 博主粉丝群介绍:① 群内初中生、高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 进群赠送CSDN评论防封脚本,送真活跃粉丝,助你提升文章热度。有兴趣的加文末联系方式,备注自己的CSDN昵称,拉你进群,互相学习共同进步。

在这里插入图片描述

【数据可视化-29】食物营养成分数据可视化分析

    • 一、引言
    • 二、数据探索
      • 2.1 数据集介绍
      • 2.2 数据清洗与探索
    • 三、单维度特征可视化
      • 3.1 卡路里分布
      • 3.2 蛋白质含量分布
      • 3.3 各营养素的基本统计图
    • 四、多维度关系可视化
      • 4.1 卡路里与蛋白质的关系
      • 4.2 碳水化合物、脂肪与卡路里的关系
      • 4.3 营养素之间的相关性矩阵
      • 4.4 高蛋白低脂食物筛选
    • 五、总结与洞察

一、引言

  食物营养成分数据的可视化分析,对于理解饮食结构、制定健康饮食计划以及营养科学研究具有重要意义。本文将基于包含3500多种食物营养成分的数据集,从多个角度进行可视化探索,帮助大家更直观地把握食物营养成分的分布特征与关联。

二、数据探索

2.1 数据集介绍

本数据集包含以下变量:

  • food:食物名称(唯一标识符)
  • Carbohydrates:碳水化合物含量
  • Sugars:糖分含量
  • Dietary Fiber:膳食纤维含量
  • Fat:脂肪含量
  • Protein:蛋白质含量
  • Calcium:钙含量
  • Iron:铁含量
  • Sodium:钠含量
  • Vitamin C:维生素C含量
  • Vitamin B11:叶酸含量
  • Caloric Value:卡路里含量(千卡)

2.2 数据清洗与探索

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns# 加载数据
df = pd.read_csv('food_nutrition.csv')  # 请替换为实际文件路径# 查看数据基本信息
print(df.info())
print(df.describe())# 查看各列唯一值数量
print(df.nunique())

  从数据的基本信息中,我们可以发现:

  • 数据集包含多个数值型变量,记录了食物的各类营养成分含量
  • 一共包含3454条数据,而且数据中无缺失值的存在

三、单维度特征可视化

3.1 卡路里分布

plt.figure(figsize=(12, 6))
sns.histplot(df['Caloric Value'], kde=True, color='teal', bins=100)
plt.title('Caloric Value Distribution')
plt.xlabel('Calories (kcal)')
plt.tight_layout()
plt.show()

  观察结果:大部分食物的卡路里含量集中在中低区间,少数高热量食物分布在右侧。

3.2 蛋白质含量分布

plt.figure(figsize=(12, 6))
sns.histplot(df['Protein'], kde=True, color='coral', bins=50)
plt.title('Protein Content Distribution')
plt.xlabel('Protein (g)')
plt.tight_layout()
plt.show()

  观察结果:蛋白质含量呈现右偏分布,大部分食物蛋白质含量在较低水平,少量食物(如肉类、豆类)蛋白质含量较高。

3.3 各营养素的基本统计图

# 选择需要展示的营养素列
nutrients = ['Carbohydrates', 'Sugars', 'Dietary Fiber', 'Fat', 'Protein', 'Calcium', 'Iron', 'Sodium', 'Vitamin C', 'Vitamin B11 (Folate)']# 创建子图
fig, axes = plt.subplots(5, 2, figsize=(15, 20))
fig.suptitle('Distribution of Nutrients', fontsize=16)for i, nutrient in enumerate(nutrients):row, col = divmod(i, 2)sns.histplot(df[nutrient], kde=True, ax=axes[row, col], bins=30)axes[row, col].set_title(f'{nutrient} Distribution')axes[row, col].set_xlabel(f'{nutrient} (g/mg)')plt.tight_layout(rect=[0, 0, 1, 0.95])
plt.show()

  观察结果:不同营养素的分布特征差异显著,例如糖分和膳食纤维含量多集中在低水平,而钠含量在部分食物中异常高。

四、多维度关系可视化

4.1 卡路里与蛋白质的关系

plt.figure(figsize=(12, 8))
sns.scatterplot(x='Protein', y='Caloric Value', data=df, alpha=0.6, color='purple')
plt.title('Relationship Between Protein and Calories')
plt.xlabel('Protein (g)')
plt.ylabel('Calories (kcal)')
plt.tight_layout()
plt.show()

  观察结果:卡路里与蛋白质存在一定的正相关关系,高蛋白食物往往热量也较高。

4.2 碳水化合物、脂肪与卡路里的关系

plt.figure(figsize=(12, 8))
sns.scatterplot(x='Carbohydrates', y='Caloric Value', hue='Fat', data=df, palette='viridis', alpha=0.6)
plt.title('Relationship Between Carbohydrates, Fat, and Calories')
plt.xlabel('Carbohydrates (g)')
plt.ylabel('Calories (kcal)')
plt.legend(title='Fat (g)')
plt.tight_layout()
plt.show()

  观察结果:碳水化合物和脂肪都是卡路里的主要贡献者,高碳水或高脂肪食物通常热量较高。

4.3 营养素之间的相关性矩阵

# 计算营养素之间的相关性
corr_matrix = df[nutrients].corr()# 绘制热力图
plt.figure(figsize=(15, 10))
sns.heatmap(corr_matrix, annot=True, cmap='coolwarm', fmt='.2f')
plt.title('Correlation Matrix of Nutrients')
plt.tight_layout()
plt.show()

  观察结果:营养素之间存在多种相关性,例如碳水化合物与糖分高度正相关,蛋白质与脂肪也有一定正相关性。

4.4 高蛋白低脂食物筛选

# 筛选条件:蛋白质含量高于中位数且脂肪含量低于中位数的食物
high_protein_low_fat = df[(df['Protein'] > df['Protein'].median()) & (df['Fat'] < df['Fat'].median())]plt.figure(figsize=(15, 8))
sns.barplot(x='Protein', y='Food Names', data=high_protein_low_fat.sort_values('Protein', ascending=False).head(20))
plt.title('Top 20 High Protein Low Fat Foods')
plt.xlabel('Protein (g)')
plt.ylabel('Food Names')
plt.tight_layout()
plt.show()

  观察结果:部分食物(如某些鱼类和豆类)兼具高蛋白和低脂肪特性,是健康饮食的良好选择。

五、总结与洞察

  通过以上多维度的可视化分析,我们得出以下关键洞察:

  1. 卡路里分布不均:少数高热量食物贡献了大部分热量,需注意平衡摄入。

  2. 营养素分布差异显著:不同营养素在各类食物中的分布极不均匀,例如蛋白质在肉类和豆类中含量高,而蔬果中相对较低。

  3. 营养素相关性复杂:碳水化合物与糖分高度正相关,蛋白质与脂肪也有一定正相关性,反映食物的综合营养特征。

  4. 健康食物选择:部分食物兼具高蛋白、低脂肪和低糖特性,是理想的健康食品。

  以上分析为理解食物营养成分的分布特征提供了多维度视角,揭示了各营养素之间的潜在关系,为进一步的营养研究和健康饮食规划提供了数据支持。


http://www.xdnf.cn/news/1522.html

相关文章:

  • 深度解析 LangChain、ReAct、ReROO 架构及其在 AI Agent 中的应用
  • Vue3 中 computed的详细用法
  • 金融软件测试有哪些注意事项?专业第三方软件测试服务机构分享
  • 【bug修复】一次诡异的接口数据显示 bug 排查之旅
  • JavaScript学习教程,从入门到精通,XMLHttpRequest 与 Ajax 请求详解(25)
  • Qt C++/Go/Python 面试题(持续更新)
  • Playwright 入门教程:从概念到应用(Java 版)
  • 协作开发攻略:Git全面使用指南 — 结语
  • windows上的RagFlow+ollama知识库本地部署
  • Spring Boot实战(三十六)编写单元测试
  • vuedraggable Sortable.js 实现拖拽排序功能VUE3
  • 4.2 Prompt工程与任务建模:高效提示词设计与任务拆解方法
  • 【Python网络爬虫实战指南】从数据采集到反反爬策略
  • HTML5 服务器发送事件 (Server-Sent Events):实现网页自动获取服务器更新
  • [论文阅读]REPLUG: Retrieval-Augmented Black-Box Language Models
  • 嵌入式:Linux系统应用程序(APP)启动流程概述
  • Qt 处理 XML 数据
  • 音视频之H.265/HEVC环路后处理
  • 国产紫光同创FPGA视频采集转SDI编码输出,基于HSSTHP高速接口,提供2套工程源码和技术支持
  • 模拟电路方向主要技术要点和大厂真题解析
  • 算法时代的“摩西十诫”:AI治理平台重构数字戒律
  • 理解npm的工作原理:优化你的项目依赖管理流程
  • express的中间件,全局中间件,路由中间件,静态资源中间件以及使用注意事项 , 获取请求体数据
  • 经验分享 | 如何高效使用 `git commit --amend` 修改提交记录
  • Android移动应用开发入门示例:Activity跳转界面
  • 【数据结构】Map与Set结构详解
  • React-组件通信
  • 【网络原理】从零开始深入理解TCP的各项特性和机制.(一)
  • 机器学习漏洞大汇总——利用机器学习服务
  • Scrapy框架爬虫官网的学习