Matplotlib-第4关:直方图
2023-12-14 01:03:11
任务描述
本关任务:绘制一个包含直方图与线形图的图形。
相关知识
为了完成本关任务,你需要掌握:1.直方图和条形图的区别,2.如何绘制直方图。
- 适用场景:和柱状图类似,适合用于展示二维数据集,展示数据的分布情况,其中一个轴表示需要对比的分类维度,另一个轴代表相应的数值。
什么是直方图
单从外表上看直方图和条形图非常相似。首先需要区分清楚概念:直方图和条形图。
-
条形图用长条形表示每一个类别,长条形的长度表示类别的频数,宽度表示表示类别。
-
直方图是一种统计报告图,形式上也是一个个的长条形,但是直方图用长条形的面积表示频数,所以长条形的高度表示频数组距,宽度表示组距,其长度和宽度均有意义。当宽度相同时,一般就用长条形长度表示频数。
绘制直方图
直方图一般用来描述等距数据。直观上,直方图各个长条形是衔接在一起的,表示数据间的数学关系。
import matplotlib.pyplot as plt
import numpy as np
import matplotlib
# 设置matplotlib正常显示中文和负号
matplotlib.rcParams['font.sans-serif']=['SimHei'] # 用黑体显示中文
matplotlib.rcParams['axes.unicode_minus']=False # 正常显示负号
# 随机生成(10000,)服从正态分布的数据
data = np.random.randn(10000)
plt.hist(data,bins=30, normed=0, facecolor="red", alpha=0.7)
# 显示横轴标签
plt.xlabel("区间")
# 显示纵轴标签
plt.ylabel("频数/频率")
# 显示图标题
plt.title("频数/频率分布直方图")
参数 | 作用 |
---|---|
data | 必选参数,绘图数据 |
bins | 直方图的长条形数目,可选项,默认为10 |
normed | 是否将得到的直方图向量归一化,可选项,默认为0 ,代表不归一化,显示频数。normed=1 ,表示归一化,显示频率。 |
facecolor | 长条形的颜色 |
edgecolor | 长条形边框的颜色 |
alpha | 透明度 |
编程要求
在右侧编辑器Begin-End
处补充代码,根据输入数据将直方图与线形图绘制在同一面板中,并设置直方图为红色,线形图为蓝色,具体要求如下:
-
图形的
figsize
为(10, 10)
; -
文件名为
Task4/img/T1.png
。
测试说明
平台会对你编写的代码进行测试:
预期输出:你的答案与正确答案一致
import matplotlib
matplotlib.use("Agg")
import numpy as np
import matplotlib.pyplot as plt
def student(data,x,y):
'''
根据输入数据将直方图与线形图绘制在同一面板中,并设置直方图为红色,线形图为蓝色
:param data: 绘制直方图数据,类型为list
:param x,y: 绘制线形图数据,类型为list
:return: None
'''
# ********* Begin *********#
plt.figure(figsize=(10, 10))
# 绘制直方图
plt.hist(data, color='red')
# 绘制线形图
plt.plot(x, y, color='blue')
# 设置图例
# 保存图形
save_dir = 'Task4/img/'
plt.savefig(f'{save_dir}T1.png')
plt.close()
# ********* End *********#
文章来源:https://blog.csdn.net/Joy19981127/article/details/134836294
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!