【数据可视化-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()
观察结果:部分食物(如某些鱼类和豆类)兼具高蛋白和低脂肪特性,是健康饮食的良好选择。
五、总结与洞察
通过以上多维度的可视化分析,我们得出以下关键洞察:
-
卡路里分布不均:少数高热量食物贡献了大部分热量,需注意平衡摄入。
-
营养素分布差异显著:不同营养素在各类食物中的分布极不均匀,例如蛋白质在肉类和豆类中含量高,而蔬果中相对较低。
-
营养素相关性复杂:碳水化合物与糖分高度正相关,蛋白质与脂肪也有一定正相关性,反映食物的综合营养特征。
-
健康食物选择:部分食物兼具高蛋白、低脂肪和低糖特性,是理想的健康食品。
以上分析为理解食物营养成分的分布特征提供了多维度视角,揭示了各营养素之间的潜在关系,为进一步的营养研究和健康饮食规划提供了数据支持。