目录
3.1用 matplotlib 库中的 pyplot 模块来绘制图表。
分组计算出了上下半场的得分情况,然后使用堆叠柱状图展示。得到以下结论:
二战后的2届世界杯进球数量同比增多了不少,应该是热情更高涨了。
前言
此篇为前一篇续集,前面用pandas对世界杯数据做了深入的分析,不过肯定是可视化的图会让人更容易理解一些,所以我们今天会用到绘图神器matplotlib,对数据分析感兴趣的小伙伴千万别错过啊,如果想看上一集,请点下面的链接:
三、分析数据
3.1用 matplotlib 库中的 pyplot 模块来绘制图表。
1.通过 plt.rcParams 来设置默认字体为中文字体 'SimHei'黑体,这里中文字体一定要设置,否则中文将不能正确显示。
2.使用 plt.figure() 函数创建一个名为 'Subplot' 的窗口,并设置其背景颜色为浅灰色,分辨率为150dpi。
3.在第一个子图中,使用 plt.subplot() 函数创建一个大小为 2×2 的子图区域,并指定绘制位置为第 1 个位置。然后根据数据 data 绘制柱状图,设置 x 轴和 y 轴标签、标题、y 轴范围、网格线等内容。并使用 plt.bar() 函数绘制柱状图,同时为每个柱子添加文本标签(数字)。最后使用 plt.legend() 函数显示图例。
4.在第二个子图中,使用 plt.subplot() 函数创建一个大小为 2×2 的子图区域,并指定绘制位置为第 2 个位置。然后根据 matches 中的数据绘制两组箱线图,可以分别得到主队和客队在主客场比赛中得分情况,并设置 x 轴和 y 轴标签、标题、y 轴范围、网格线等内容。
5.使用 plt.tight_layout() 函数进行布局调整,以确保图表元素之间的间距合适,并使用 plt.show() 函数显示图表。
figure函数定义画板样式(背景颜色,大小)
subplot函数可以设定有多少个子图
grid可以制作网格
从以上数据我们可以看出:
1.主场球队获胜概率远大于客场队
2.主队进球的平均水平从箱线图看来整体也高于客队
yearDF = matches.groupby('Year').sum(numeric_only=True)
yearDF = yearDF.reset_index()
yearDF.head()
1.对 matches 按照年份进行分组,并计算得出每个年份的比赛总得分,numeric_only=True 参数表示仅对数值类型的列进行求和,避免了警告信息。
2.使用 reset_index() 函数将 Year 列变回普通列,并重置索引。
x = yearDF['Year'] y = yearDF['Attendance']/ 10000 plt.figure('bar', facecolor = 'lightgray', dpi = 120) plt.title('观众总数') plt.xlabel('年份') plt.ylabel('观众人数(万)') plt.grid(axis = 'y', linestyle = ':') plt