生成男女体重的随机二维数据

根据2015年国务院发布的全国人口普查数据,展示了18岁及以上成年人的平均身高和体重,并通过散点图形式呈现男女样本数据分布情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

根据2015年6月30日国务院新发布全国人口普查数据显示,18岁及以上成年男性和女性的平均身高分别为170.5cm和155.8cm,平均体重分别为66.2kg和57.3kg。

为了进行数据分析,我们先生成一组男女模拟数据,并以散点图的形式显示为以下效果。
在这里插入图片描述
在图上,我们使用蓝色X表示男性,红色圆圈表示女性。x轴表示体重范围是从0至100(单位公斤),y轴表示身高,范围是100-200(单位cm)。

在随机生成的数据中,应该是符合正泰分布的,但是为了简化,我们使用公式 y= x2代替了原来的公式,基本可以达到中间密集,边缘稀疏的目的。

源代码如下:


import numpy as np
import matplotlib.pyplot as plt
# import matplotlib as mpl

# import numpy as np 
# from matplotlib import pyplot as plt 
  
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.font_manager import FontProperties
import random

font = FontProperties(fname=r"C:\Windows\Fonts\simhei.ttf", size=14)  



def getData(sex):
    w = 66.2 if sex == 'm' else 57.3
    h = 167.1 if sex == 'm' else 155.8
    w += randValue(30)
    h += randValue(40)
    return w, h

def randValue(n):
    return random.random() * (n / 2 - random.random() * n)

xValue = []
yValue = []

x_males = []
y_males = []


for _ in range(100):
    w, h = getData('m')
    xValue.append(w)
    yValue.append(h)
    w, h = getData('f')
    x_males.append(w)
    y_males.append(h)



plt.title(u'散点图示例', FontProperties=font)

plt.xlabel('weight(kg)')
plt.ylabel('height(cm)')
# plt.scatter(x, y, s, c, marker)
# x: x轴坐标
# y:y轴坐标
# s:点的大小/粗细 标量或array_like 默认是 rcParams['lines.markersize'] ** 2
# c: 点的颜色 
# marker: 标记的样式 默认是 'o'
plt.legend()
plt.scatter(xValue, yValue, s=20, c="#0000ff", marker='x')
plt.scatter(x_males, y_males, s=20, c="#ff1212", marker='o')
plt.xlim(0, 100)
plt.ylim(100, 200)            
plt.show()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值