项目

内容

课程班级地址链接

20级数据班(本)

作业要求链接

第四周作业

博客名称

2003031132-向欣怡-Python数据分析第二次作业

要求

每道题要有题目,代码,截图(只截运行结果)

1、扩展阅读心得:

matplotlib常用设置

了解了matplotlib绘图的常见设置,例如:图像的大小设置,刻度和标注特殊设置,增加x轴与y轴间的间隔,向右移动x轴标注一点点即可,移动刻度标注,调整图像边缘及图像间的空白间隔,子图像统一标题设置,图像中标记线和区域的绘制。

matplotlib进阶设置

  知道了matplotlib绘图可视化的一些知识点,可以通过matplotlib实现图表中文显示,matplotlib中inline pylab inline这两个命令都可以在绘图时,将图片内嵌在交互窗口,而不是弹出一个图片窗口,但是,有一个缺陷:除非将代码一次执行,否则,无法叠加绘图,因为在这两种模式下,是要有plt出现,图片会立马show出来。还有为项目设置matplotlib参数,在代码执行过程中,有两种方式更改参数:使用参数字典(rcParams),调用matplotlib.rc()命令 通过传入关键字元祖,修改参数。了解了线条相关属性标记设置。

2、作业题目

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

matplotlib meshgrid 坐标范围 matplotlib设置坐标间隔_执行过程

matplotlib meshgrid 坐标范围 matplotlib设置坐标间隔_折线图_02

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

matplotlib meshgrid 坐标范围 matplotlib设置坐标间隔_折线图_03

 

matplotlib meshgrid 坐标范围 matplotlib设置坐标间隔_执行过程_04