|

楼主 |
发表于 2020-6-11 12:14:43
|
显示全部楼层
我放弃了之前的思路了,用pandas库写了。
原始数据集先存成.csv格式。并且加上了表头。
之后我改过的代码附上:
- #-*-coding: utf-8-*-
- import pandas as pd
- import numpy as np
- import matplotlib.pyplot as plt
- jianfei = pd.read_csv(r'C:\Users\Administrator\PycharmProjects\feature202005\jianfei.csv',encoding='gb18030')
- data = jianfei[['天数','体重','BMI','体脂','骨骼肌含量','内脏脂肪等级','代谢','水分','含盐量','蛋白质含量','肌肉含量','身体年龄变化']]
- print(data)
- #计算列中的最大值
- def max_func(input):
- sum_mid =[]
- for i in range(107):
- sum_mid_v1 = input[i]
- sum_mid.append(sum_mid_v1)
- max_result = max(sum_mid)
- return max_result
- #计算列中的最小值
- def min_func(input):
- sum_mid =[]
- for i in range(107):
- sum_mid_v1 = input[i]
- sum_mid.append(sum_mid_v1)
- min_result = min(sum_mid)
- return min_result
- #间隔变量:体重
- tizhong_max = max_func(data['体重'])
- tizhong_min = min_func(data['体重'])
- # print(tizhong_max)
- # print(tizhong_min)
- tizhong_max = int(tizhong_max)
- tizhong_min = int(tizhong_min)
- #间隔变量:BMI
- bmi_max = max_func(data['BMI'])
- bmi_min = min_func(data['BMI'])
- bmi_max = int(bmi_max)
- bmi_min = int(bmi_min)
- #间隔变量:体脂
- tizhi_max = max_func(data['体脂'])
- tizhi_min = min_func(data['体脂'])
- tizhi_max = int(tizhi_max)
- tizhi_min = int(tizhi_min)
- #间隔变量:内脏脂肪等级
- neizang_max = max_func(data['内脏脂肪等级'])
- neizang_min = min_func(data['内脏脂肪等级'])
- neizang_max = int(neizang_max)
- neizang_min = int(neizang_min)
- # jiange = 0.1
- # jiange = float(jiange)
- #间隔变量:肌肉含量
- jirou_max = max_func(data['肌肉含量'])
- jirou_min = min_func(data['肌肉含量'])
- jirou_max = int(jirou_max)
- jirou_min = int(jirou_min)
- #间隔变量:身体年龄变化
- bodyage_max = max_func(data['身体年龄变化'])
- bodyage_min = min_func(data['身体年龄变化'])
- bodyage_max = int(bodyage_max)
- bodyage_min = int(bodyage_min)
- plt.figure(figsize=(10,15))
- #体重:
- x=range(1,107,5)
- y=range(tizhong_min,tizhong_max+1,1)
- plt.scatter(data['天数'],data['体重'])
- plt.plot(data['天数'],data['体重'])
- plt.xticks(x)
- plt.yticks(y)
- plt.xlabel(u'天数', fontproperties='FangSong')
- plt.title(u'体重变化情况 单位:kg', fontproperties='FangSong')
- plt.figure(figsize=(10,15))
- #BMI:
- x=range(1,107,5)
- y=range(bmi_min,bmi_max+1, 1)
- plt.scatter(data['天数'],data['BMI'])
- plt.plot(data['天数'],data['BMI'])
- plt.xticks(x)
- plt.yticks(y)
- plt.xlabel(u'天数', fontproperties='FangSong')
- plt.title(u'BMI变化情况 ', fontproperties='FangSong')
- #mid = int(0.1)
- plt.figure(figsize=(10,15))
- #体脂
- x=range(1,107,5)
- y=range(tizhi_min,tizhi_max+1, 1)
- plt.scatter(data['天数'],data['体脂'])
- plt.plot(data['天数'],data['体脂'])
- plt.xticks(x)
- plt.yticks(y)
- plt.xlabel(u'天数', fontproperties='FangSong')
- plt.title(u'体脂变化情况 单位: %', fontproperties='FangSong')
- plt.figure(figsize=(10,15))
- #内脏脂肪等级
- x=range(1,107,5)
- y=range(neizang_min,neizang_max+1,1)
- plt.scatter(data['天数'],data['内脏脂肪等级'])
- plt.plot(data['天数'],data['内脏脂肪等级'])
- plt.xticks(x)
- plt.yticks(y)
- plt.xlabel(u'天数', fontproperties='FangSong')
- plt.title(u'内脏脂肪等级变化情况 ', fontproperties='FangSong')
- plt.figure(figsize=(10,15))
- #肌肉含量变化
- x=range(1,107,5)
- y=range(jirou_min,jirou_max+1,1)
- plt.scatter(data['天数'],data['肌肉含量'])
- plt.plot(data['天数'],data['肌肉含量'])
- plt.xticks(x)
- plt.yticks(y)
- plt.xlabel(u'天数', fontproperties='FangSong')
- plt.title(u'肌肉含量变化情况 单位:kg', fontproperties='FangSong')
- plt.figure(figsize=(10,15))
- #身体年龄
- x=range(1,107,5)
- y=range(bodyage_min,bodyage_max+1,1)
- plt.scatter(data['天数'],data['身体年龄变化'])
- plt.plot(data['天数'],data['身体年龄变化'])
- plt.xticks(x)
- plt.yticks(y)
- plt.xlabel(u'天数', fontproperties='FangSong')
- plt.title(u'身体年龄变化情况 单位:岁', fontproperties='FangSong')
- plt.show()
复制代码
经测试有效。
如果有人用华为体脂秤,或者其他体脂秤,也可以用这个方法可视化哈。
ps:为啥我想写这个,因为我想看肌肉含量变化,总感觉减肥过程中肌肉也少了。
2020年过年后到现在,我体重减了20多斤呢。体脂下降了5%还多。 |
|