2003031126-石升福-python数据分析第四周作业-第二次作业


项目 matplotlib
博客名称 2003031126-石升福-Python数据分析第四周作业
班级链接 20级数据班
作业链接 第二次作业
要求 每道题要有题目,代码(使用插入代码,不会插入代码的自己查资料解决,不要直接截图代码!!),截图(只截运行结果)。

一.扩展阅读:

1.图像的大小设置

如果已经存在figure对象,可以通过以下代码设置尺寸大小,若果通过.sublots()命令来创建新的figure对象, 可以通过设置figsize参数达到目的

2.刻度和标注特殊设置。

在X轴标出一些重要的刻度点,当然实现方式有两种:直接在X轴上标注和通过注释annotate的形式标注在合适的位置。

3.增加X轴与Y轴间的间隔,向右移动X轴标注一点点即可

4.移动刻度标注

5.调整图像边缘及图像间的空白间隔

图像外部边缘的调整可以使用plt.tight_layout()进行自动控制,此方法不能够很好的控制图像间的间隔。

二:扩展阅读

1.为项目设置matplotlib参数

在代码执行过程中,有两种方式更改参数:

  • 使用参数字典(rcParams)
  • 调用matplotlib.rc()命令 通过传入关键字元祖,修改参数。

2.线条相关属性标记设置用来该表线条的属性

3.确定坐标范围

plt.axis([xmin, xmax, ymin, ymax]),上面例子里的axis()命令给定了坐标范围。xlim(xmin, xmax)和ylim(ymin, ymax)来调整x,y坐标范围。

三:作业题目:

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

相关