1.本周课程导学
2.Matplotlib库的介绍
3.pyplot 的plot()函数
4.pyplot 的中文显示
5.pyplot 的文本显示
6.pyplot 的子绘图区域
7.单元小结
网页链接【Python 数据分析与展示】.MOOC. 北京理工大学
https://www.bilibili.com/video/av15825380/index_4.html#page=21
最近更新:2018-01-23
1.本周课程导学
![](https://img.haomeiwen.com/i9945523/6979d8bc85d5fd1f.png)
2.Matplotlib库的介绍
2.1Matplotlib库的效果
![](https://img.haomeiwen.com/i9945523/6f0cf52978974dd9.png)
![](https://img.haomeiwen.com/i9945523/3f32b478dda93ec5.png)
2.1Matplotlib库的使用
![](https://img.haomeiwen.com/i9945523/9edb3dfbbcbb93e2.png)
- 1个参数使用例子
[3,1,4,5,2]是作为纵坐标的值,plot函数输入参数只是一个一维的列表,那么这个参数会被当作y轴来处理.x轴就是这个列表的索引,第一个元素是0,第二个元素是1,最后一个索引元素是4,横坐标是0到4这个跨度组成.x轴是自动生成的.
import matplotlib.pyplot as plt
import numpy as np
plt.plot([3,1,4,5,2])
plt.ylabel("grade")
plt.show()
![](https://img.haomeiwen.com/i9945523/ace19e03e022196e.png)
- 绘制的图像存储文件
![](https://img.haomeiwen.com/i9945523/d32aaefd8455cca2.png)
![](https://img.haomeiwen.com/i9945523/b5341d64d0ca122f.png)
- 2个参数维使用例子
-
前面的参数代表x轴,后面的参数代表y轴
-plt. axis是横纵坐标尺度的函数.它的参数是具有四个变量的列表-1,10是代表x轴最左侧的坐标,起始于-1,终止于10,纵轴的坐标起始于0,终止于6
-
2.1pylot的绘图区域
2.1.1pylot的绘图区域方法介绍
-
第1参数是为横轴数量.第2参数是为纵轴数量子区域,第3参数是为当前绘图区的哪一块区域.从左上角开始为编号1号区域,从左往右,然后不断换行,按从左往右开始逐一编号.
-
比如这里的plt.subplot(3,2,4)将绘图区域分为3个横轴,2个纵轴,区域分成6块.4为当前绘图区域.
-
plt.subplot(3,2,4)由于都是数字,可以将逗号去掉,写成plt.subplot(324)
![](https://img.haomeiwen.com/i9945523/fba760e5c0f4626f.png)
2.1.2pylot的绘图区域实例
- f(t)是一个能量衰减函数, 使用numpy作为计算数组返回衰减的一个基础类
- numpy生成数组a
- 注意subplot的使用,使用subplot产生一个211的参数,将绘图区域,分为2行1列,选择上面1号这一块
- plot(a,f(a))绘制对应a的能量衰减曲线.之后将当前的绘图区域放到整个图形绘制区域的下面部分.使用subplot(2,1,2)选择编号2区域.
- 对a做一个cos函数处理,绘制余弦曲线,曲线的形式设置为一个曲线的格式
-
重点理解子绘图区域的概念,subplot可以确定子绘图区域.
![](https://img.haomeiwen.com/i9945523/84f742d7185b3140.png)
3.pyplot 的plot()函数
3.1plot()函数介绍
![](https://img.haomeiwen.com/i9945523/d55979e9977b7f74.png)
3.2plot()函数实例
![](https://img.haomeiwen.com/i9945523/0fb38c244a7f3e3b.png)
import matplotlib.pyplot as plt
import numpy as np
a=np.arange(10)
plt.plot(a,a*1.5,a,a*2.5,a,a*3.5,a,a*4.5)
plt.show()
3.3format_string
format_string由颜色字符/风格字符和标记字符可以组合使用
3.3.1颜色字符定义
![](https://img.haomeiwen.com/i9945523/77f3b58beba2ffe8.png)
3.3.2风格字符定义
![](https://img.haomeiwen.com/i9945523/4edc449b80dcbae9.png)
3.3.3标记字符定义
-
标记字符的介绍
- 标记字符的实例介绍
import matplotlib.pyplot as plt
import numpy as np
a=np.arange(10)
plt.plot(a,a*1.5,"go-",a,a*2.5,"rx",a,a*3.5,"*",a,a*4.5,"b-.")
plt.show()
如果没有注明颜色,系统会自动用其他颜色画出.
![](https://img.haomeiwen.com/i9945523/6e93b6414f80eab5.png)
3.3.4其他方式的标记定义
与之前的简写字符是一一对应的
![](https://img.haomeiwen.com/i9945523/43f6688a8cf610d3.png)
4.pyplot的中文显示
pyplot并不默认中文的显示,希望在坐标系出现中文的汉字,需要增加额外的代码辅助介绍两种方法,具体如下:
4.1第一种pyplot的中文显示方法
SimHei是中文黑体的意思
![](https://img.haomeiwen.com/i9945523/02782f6a1cd78431.png)
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams["font.family"]="SimHei"
plt.plot([3,1,4,5,2])
plt.ylabel("纵坐标(值)")
plt.savefig("test",dpi=600)
plt.show()
![](https://img.haomeiwen.com/i9945523/b2072692f9e8f380.png)
- rcParams的属性
这种字体的改变,会改变绘图所有的文本,比如横纵坐标的数字,文本均会改变成相对应的字体.
![](https://img.haomeiwen.com/i9945523/e09652ac3b08f737.png)
![](https://img.haomeiwen.com/i9945523/8c9f901caa616d7b.png)
运用实例
import matplotlib
import numpy as np
matplotlib.rcParams["font.family"]="STSong"
matplotlib.rcParams["font.size"]=20
a=np.arange(0.0,5.0,0.02)
plt.xlabel("横轴:时间")
plt.ylabel("纵轴:振幅")
plt.plot(a,np.cos(2*np.pi*a),"r--")
plt.show()
![](https://img.haomeiwen.com/i9945523/be14f57d08a6defb.png)
4.2第二种pyplot的中文显示方法(最好使用这个)
- 在有中文输出的地方,增加一个属性fontproperties.
-
fontproperties仅对设置的区域起作用,其他的地方的数字和文字不起作用
import matplotlib.pyplot as plt
import numpy as np
a=np.arange(0.0,5.0,0.02)
plt.xlabel("横轴:时间",fontproperties="SimHei",fontsize=20)
plt.ylabel("纵轴:振幅",fontproperties="SimHei",fontsize=20)
plt.plot(a,np.cos(2*np.pi*a),"r--")
![](https://img.haomeiwen.com/i9945523/2bd0f79cd83b19bc.png)
5.pyplot 的文本显示
5.1pyplot 的文本显示函数
至少要掌握这5个基本函数,这样绘制的图形才非常专业
![](https://img.haomeiwen.com/i9945523/88a5189c5b808cea.png)
5.2实例
- $y=cos(2\pi x)$这个是排版格式
-
plt.grid(True)这个加入网格
import matplotlib.pyplot as plt
import numpy as np
a=np.arange(0.0,5.0,0.02)
plt.plot(a,np.cos(2*np.pi*a),"r--")
plt.xlabel("横轴:时间",fontproperties="SimHei",fontsize=15,color="green")
plt.ylabel("纵轴:振幅",fontproperties="SimHei",fontsize=15)
plt.title(r"正弦波实例 $y=cos(2\pi x)$",fontproperties="SimHei",fontsize=25)
plt.text(2,1,r"$\mu=100$",fontsize=15)
plt.axis([-1,6,-2,2])
plt.grid(True)
plt.show()
![](https://img.haomeiwen.com/i9945523/71a13b38e05b2f26.png)
5.3annotate函数
![](https://img.haomeiwen.com/i9945523/c4b5e41608a6cb8f.png)
- s代表要注解的字符串是什么
- xy表示箭头所在位置
- xytext表示文本显示的位置
- arrowprops字典类型,定义了箭头的属性
import matplotlib.pyplot as plt
import numpy as np
a=np.arange(0.0,5.0,0.02)
plt.plot(a,np.cos(2*np.pi*a),"r--")
plt.xlabel("横轴:时间",fontproperties="SimHei",fontsize=15,color="green")
plt.ylabel("纵轴:振幅",fontproperties="SimHei",fontsize=15)
plt.title(r"正弦波实例 $y=cos(2\pi x)$",fontproperties="SimHei",fontsize=25)
plt.annotate(r"$\mu=100$",xy=(2,1),xytext=(3,1.5),arrowprops=dict(facecolor="black",shrink=0.1,width=2))
plt.axis([-1,6,-2,2])
plt.grid(True)
plt.show()
width箭头的宽度,shrink表示箭头不跟所指的位置直接靠近,留有一个很小的空白.
![](https://img.haomeiwen.com/i9945523/80ce1c509e4d7be9.png)
6.pyplot 的子绘图区域
应该这样绘制复杂的区域
![](https://img.haomeiwen.com/i9945523/4663932198a8e373.png)
6.1subplot2grid()函数介绍
-
第一个参数是个元组,将区域分割成什么样的网格形状,比如(3,3)表示把一个区域分割成三行三列,九块区域的一个基本类型.
-
第二个参数代表subplot当前选定的区域在那里?针对(3,3) 而言(1,0)代表的是第一行第0列所在位置,也是图中左侧绘制区域的部分.
-
第三个参数colspan表示的是列的延伸,也就是从(1,0)开始,在列的方向上在延伸两个长度.就是图中所构造的黄色区域.
-
subplot2grid()函数实例
6.2GridSpec类介绍
GridSpec(3,3)代表的是3行3列
![](https://img.haomeiwen.com/i9945523/bdf2d5aea378f75e.png)
7.单元小结
![](https://img.haomeiwen.com/i9945523/e9e12ed67865980c.png)
![](https://img.haomeiwen.com/i9945523/d2503bea5ca0ca22.png)
![](https://img.haomeiwen.com/i9945523/381b8266eadc81f6.png)
网友评论