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()

执行结果:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Narutolxy/article/details/108060232