202008数据分析作业2

练习1

绘制班级的身高分布图形 height = [160,163,175,180,176,177,168,189,188,177,174,170,173,181]

from matplotlib import pyplot as plt
import random
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False   # 步骤二(解决坐标轴负数的负号显示问题)

plt.figure(figsize=(10,5))

height = [160,163,175,180,176,177,168,189,188,177,174,170,173,181]
diff_height = max(height)-min(height) #极差
print(diff_height)
g_distance = 5
g_num = round(diff_height/g_distance)# 注意组数必须为整数,不能为小数,所以此处四舍五入。默认为10
print(g_num)
plt.xlabel('组数')
plt.ylabel('频率')
plt.title('身高直方图')
plt.hist(height,g_num,density=True, color='g',alpha=0.7, rwidth=0.85) #频率图 增加density

#n, bins, patches = plt.hist(x=height, bins='auto', color='#0504aa',alpha=0.7, rwidth=0.85)
plt.text(176, 0.06, r'最多', color='r')
plt.grid(axis='y', alpha=0.7)

plt.show()

结果:
在这里插入图片描述

练习2

实现以下子图布局:
在这里插入图片描述

from matplotlib import pyplot as plt

import random
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False   # 步骤二(解决坐标轴负数的负号显示问题)

# 通过栅栏设置比例
fig2 = plt.figure(figsize=(12,5))
width = (3,1) #说明0列比1列的宽度为2:1
height = (1,3)#0行比1行宽度为2:1
gs = fig2.add_gridspec(2,2,width_ratios=width,height_ratios=height)

#绘制折线图
def line_chart(ax):
    ax.plot(range(5),range(5),marker='o',color='r')
    ax.set_title('折线图')

#绘制散点图
def scatter_chart(ax):
    ax.scatter(range(5),list(range(5))[::-1],color='y')
    ax.set_title('散点图')

#绘制直方图
def hist_chart(ax):
    height = [160,163,175,180,176,177,168,189,188,177,174,170,173,181]
    diff_height = max(height)-min(height) #极差
    #print(diff_height)
    g_distance = 5
    g_num = round(diff_height/g_distance)# 注意组数必须为整数,不能为小数,所以此处四舍五入。默认为10
    #print(g_num)
    ax.set_xlabel('组数')
    ax.set_ylabel('频率')
    ax.set_title('身高直方图')
    ax.hist(height,g_num,density=True, color='g',alpha=0.7, rwidth=0.85) #频率图 增加density
    
# [行,列]---[0,0] 取一整行,列取全部
ax4 = fig2.add_subplot(gs[0,0])
ax5 = fig2.add_subplot(gs[1,0])
ax6 = fig2.add_subplot(gs[1,1])
line_chart(ax4)
hist_chart(ax5)
scatter_chart(ax6)
# 自动调整
#fig.tight_layout()
fig.tight_layout(h_pad=16,w_pad=5)
plt.show()

执行结果:

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Narutolxy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值