MCM/ICM preparation_one

MCM/ICM preparation

first week(matplotlib learning)


pyplot

面向对象的方式(object-oriented)

·折线图 plot
·饼状图 pie
·散点图 scatter
·直方图 hist,hist2d
·条形图 bar,barh

三种方式简介:

pyplot: 经典高层封装。

pylab:将matplotlib 和numpy 合并的模块,模拟matlab编程环境

面向对象的方式:matplotlib的精髓,更基础和底层的方法

1.matplotlib 对象实例

fig=plt.figure()
ax=fig.add_subplott(111)  #设置fig的子图类型   
返回Axes实例 

·学习生成多个子图和生成多张图
·网格的画法 利用plt.grid()来对网格进行定制,包括颜色,宽度,线性等等

2.图例

plt.legend()生成图例
parameter: loc   
loc=0,1,2,3...   loc=0时为best
ncol = num 分为几列

3.x,y轴的调整

plt.axis([])#调整4个数值
plt.xlim([])#调整一个或者两个数值
plt.ylim([])#调整一个或者两个数值

4.调整坐标轴的刻度&生成日期序列

ax.localtor_params(nbins=20)
ax.localtor_params('x',nbins=20)

5.如何在一个图中添加一条新的坐标轴(双坐标轴)

利用plt.twinx来实现双坐标轴的画法
同理,有twins也有twiny
代码参见homework8  

6.在图形中画注释符

利用plt.annotate()方法来进行,具体参加代码homework9
纯文字注释,不使用箭头 具体也参见代码homework9
text公式(数学公式)通过利用TeX公式,来编辑数学公式。 这里注意以$作为开始和结束符 textmath的公式已经在pdf中,可以上传

7.对曲线下面或者曲线之间的区域进行填充

使用fill与fill_between来对其进行处理,那么则可以达到要求

8.生成形状

需要使用patches, import matplotlib.patches as mpatches
patches 中有许多形状,事实上,还有一些其它的形状可以用来做包括指示之类的东西
参见homework11

9.图形的美化

主要是对于函数plt.style.use()进行运行就差不多了,注意查看plt.style.available中的内容,参见homework12

10.绘制极坐标图形

    ax=plt.subplot(111,projection='polar')#以极坐标的形式来画图
    主要有这样一个参数,可以使得其表示为极坐标,同时,注意极坐标的x,y指的是什么
    代码参加homework13

实战检验

1.函数积分图

具体代码直接参见homework14,这里主要强调几点,就是要利用好python中几种常用数据类型的转化,学会处理好其过程。

2.实现图形的展示

具体代码参加homework15,这里要学会对于多个图形的处理,以及如何利用其来实现展示的过程,以及学会如何查阅文档

3.球员能力的分析

这里主要掌握一些很有意思的方法:包括如何输出中文的标签,如何循环实现输出等等,具体参见代码homework16