2003031115—李能武—Python数据分析第四周—第二次作业
项目 | 内容 |
课程班级博客链接 | 20级数据班(本) |
这个作业要求链接 | python数据分析第四周作业要求 |
博客名称 | 2003031115—李能武—Python数据分析第四周作业—matplotlib |
要求 | 每道题要有题目,代码(使用插入代码,不会插入代码的自己查资料解决,不要直接截图代码!!),截图(只截运行结果)。 |
题目一:扩展阅读心得体会
1、扩展阅读:matplotlib常用设置
心得体会:图形位置、大小设置的两种设置:第一种是可以把figure的标题放到图形的内部中来,但axes的坐标轴无法放进来,而且如果两者都在图像外部不会相互干扰;第二种两者都不能放到图像内,而且标题之间会相互干扰。Matplotlib 是 Python 最著名的绘图库,它提供了一整套和 MATLAB 相似的命令 API,十分适合交互式地进行制图。Matplotlib是一个Python 2D绘图库(使用Matplotlib发布的mpl_toolkits库可以画3D图形 ),能够以多种硬拷贝格式和跨平台的交互式环境生成出版物质量的图形,用来绘制各种静态,动态,交互式的图表。
2、扩展阅读:matplotlib进阶设置
心得体会:Matplotlib 可用于创建高质量的图表和图形,也可以用于绘制和可视化结果。matplotlib 是 Python 优秀的数据可视化第三方库,matplotlib.pyplot 是绘制种类可视化图形的命令子库,相当于快捷方式 import matplotlib.pyplot as plt。
Figure:顶层级,用来容纳所有绘图元素。
Axes:matplotlib宇宙的核心,容纳了大量元素用来构造一幅幅子图,一个figure可以由一个或多个子图组成。
Axis:axes的下属层级,用于处理所有和坐标轴,网格有关的元素。
Tick:axis的下属层级,用来处理所有和刻度有关的元素。
二、作业题目:
1、课上例题,男女朋友的数量。
- 假设大家在30岁的时候,根据自己的实际情况,统计出来了从11岁到30岁每年交的女(男)朋友的数量如列表a,请绘制出该数据的折线图,以便分析自己每年交女(男)朋友的数量走势
- a = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
- 要求: y轴表示个数 x轴表示岁数,比如11岁,12岁等
代码:
from matplotlib import pyplot as plt plt.rcParams["font.sans-serif"]='SimHei' plt.rcParams["axes.unicode_minus"]=False plt.figure(figsize=(15,8),dpi=100) #引入x,y的值 x=range(11,31) y=[1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1] #设置x,y轴的范围 _x_ticks=["{}岁".format(i) for i in x] _y_ticks=[range(10)] plt.xticks(x[::1],_x_ticks[::1]) plt.plot(x,y) plt.xlabel("年龄") plt.ylabel("个") plt.title("11岁到30岁之间每年交往的男(女)友数") plt.show()
截图:
2、销量统计
- 假如需要统计量一家店铺七月、八月上旬1-10日每天店铺产品销量个数,并进行销量趋势对比
- 七月销量:[20,50,30,5,10,55,23,33,41,22]
- 八月销量:[5,10,32,18,20,22,36,63,82,71]
- 绘制折线图,横轴为日期,纵轴为销量
代码:
from matplotlib import pyplot as plt from matplotlib import font_manager # 解决中文乱码 plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['font.serif'] = ['SimHei'] # 设置字体 my_font=font_manager.FontProperties(fname="C:\Windows\Fonts\msyh.ttc") # 设置画布大小 plt.figure(figsize=(20, 10), dpi=80) x = range(1, 11) y_1 = [20, 50, 30, 5, 10, 55, 23, 33, 41, 22] y_2 = [5, 10, 32, 18, 20, 22, 36, 63, 82, 71] plt.plot(x, y_1, label="7月") plt.plot(x, y_2, label="8月") _x = x _xtick_labels = ["{}日".format(i) for i in _x] plt.xticks(x, _xtick_labels, fontproperties=my_font) plt.title("1号到10号店铺产品销量情况", fontproperties=my_font) plt.legend(prop=my_font, loc="best") # 绘制网格 plt.grid(alpha=0.5) plt.show()
截图: