安装
pip install matplotlib
在jupyter notebook里安装
! pip install matplotlib
图像结构 ![在这里插入图片描述](https://img-blog.csdnimg.cn/ea1378467ea845b89f3ce3f9bf5b626d.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4OTI5MjIw,size_16,color_FFFFFF,t_70) 不同的类型数据需要选择合适的图显示
折线图
plt.plot()
折线样式 ![在这里插入图片描述](https://img-blog.csdnimg.cn/2e5fa235e35a438e9c254fe3e986655f.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4OTI5MjIw,size_16,color_FFFFFF,t_70)
- color:折线的颜色
- alpha:透明度
- linestyle:样式
‘-’:实线 ‘- -’:虚线 ‘-.’:点虚线 ’..’:点线 - linewidth:折线的宽度
- marker:折点样式
'-' '--' '-.' ':' '.' ',' 'o' 'v' '^' '>' '<' '1' '2' '3' '4' 's' 'p' '*' 'h' 'H' '+' 'x' 'd' 'D' '|' '_'
设置图片 ![在这里插入图片描述](https://img-blog.csdnimg.cn/d1ec7ce443cf4213b7c1ac797eefe024.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4OTI5MjIw,size_16,color_FFFFFF,t_70)
- figsize:设置图片的长宽,单位英寸
- dpi:每英寸像素点
保存图片:plt.savefig(),支持eps, jpeg, jpg, pdf, pgf, png, ps, raw, rgba, svg, svgz, tif, tiff格式
设置x轴的刻度:plt.xticks() 设置y轴的刻度:plt.yticks() ![在这里插入图片描述](https://img-blog.csdnimg.cn/e2bfa4434d734424bddb2bd5f983249c.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4OTI5MjIw,size_16,color_FFFFFF,t_70)
显示中文 matplotlib默认不显示中文,要自行设置
- 设置
fontproperties plt.ylabel('温度',fontproperties='simHei')
![在这里插入图片描述](https://img-blog.csdnimg.cn/3ee3d7d77a5a47bb88147de914b59526.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4OTI5MjIw,size_16,color_FFFFFF,t_70)
-
import matplotlib
matplotlib.rcParams['font.sans-serif']=['SimHei']
一图多线
![在这里插入图片描述](https://img-blog.csdnimg.cn/b24f6e2f496b461b87e2a526fe7820ea.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4OTI5MjIw,size_16,color_FFFFFF,t_70) 设置图例
plt.legend(prop,loc)
prop 设置字体loc 设置位置,默认upper left ,可改为upper right upper center lower left center left etc.
散点图
plt.scatter()
![在这里插入图片描述](https://img-blog.csdnimg.cn/e10ae90ca0c84d45a9dd50ff67dbefb6.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4OTI5MjIw,size_16,color_FFFFFF,t_70)
设置网格
plt.grid()
linestyle 网格样式alpha 设置网格透明度
条形图
plt.bar()
width 设置柱形的宽度color 设置颜色 ![在这里插入图片描述](https://img-blog.csdnimg.cn/d1b35b9987b7498ab9da6f636becc788.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4OTI5MjIw,size_16,color_FFFFFF,t_70)
直方图
'''
统计250部电影的时长的分布状态(比如时长为100分钟到120分钟电影的数量,出现的频率)
'''
import numpy as np
time = [131,98,125,131,124,139,131, 117, 128, 108, 135, 138, 131, 102, 107, 114,119,128,121,142,127,130,124, 101, 110, 116,
117, 110, 128, 128, 115,99,136,126,134,95,138,117,111,78, 132, 124, 113, 150, 110, 117,86,95, 144,105, 126, 130,126,
130, 126, 116, 123, 106, 112, 138, 123,86, 101,99, 136,123,117,119,105,137, 123, 128, 125, 104, 109, 134, 125, 127,105,
120,107,129, 116,108,132,103,136, 118, 102, 120, 114,105, 115, 132, 145, 119, 121,112,139, 125,138,109,132,134,156,
106, 117, 127, 144, 139, 139, 119, 140,83,110,102,123,107,143,115,136, 118, 139, 123, 112, 118, 125, 109, 119, 133,112,
114,122, 109,106,123,116,131,127, 115, 118, 112, 135,115,146,137,116,103,144,83,123,111,110,111,100,154,136, 100, 118,
119, 133,134,106,129,126,110,111,109,141,120, 117, 106, 149, 122, 122, 110, 118, 127, 121, 114, 125, 126,114, 140, 103,
130,141, 117, 106, 114, 121, 114, 133, 137,92,121,112,146,97,137, 105,98,117,112,81,97, 139, 113,134, 106, 144, 110,
137,137,111,104,117, 100, 111,101,110,105, 129, 137, 112, 120, 113, 133, 112,83,94,146,133,101,131, 116,111,84, 137,
115, 122, 106, 144, 109, 123, 116, 111,111, 133, 150]
plt.figure(figsize=(16,6))
distance = 2
group_num = int((max(time) - min(time)) / distance)
h = plt.hist(time,bins=group_num)
plt.xticks(range(min(time),max(time)+2)[::2])
plt.yticks(range(np.int(min(h[0])),np.int(max(h[0]))+1))
plt.grid(linestyle='--',alpha=0.5)
plt.xlabel('电影时长',fontproperties='simHei')
plt.ylabel('电影数量',fontproperties='simHei')
plt.title('250部电影的时长的分布状态',fontproperties='simHei',size=18)
plt.show()
![在这里插入图片描述](https://img-blog.csdnimg.cn/d23f403f5ddc4768a676761516bb2941.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4OTI5MjIw,size_16,color_FFFFFF,t_70)
print(h)
(array([ 1., 1., 3., 1., 2., 0., 0., 1., 3., 2., 4., 7., 6., 8., 11., 8., 18., 12., 13., 17., 12., 9., 13., 9., 11., 8., 10., 10., 7., 13., 10., 4., 2., 6., 3., 1., 2., 0., 2.]), array([ 78., 80., 82., 84., 86., 88., 90., 92., 94., 96., 98., 100., 102., 104., 106., 108., 110., 112., 114., 116., 118., 120., 122., 124., 126., 128., 130., 132., 134., 136., 138., 140., 142., 144., 146., 148., 150., 152., 154., 156.]), <BarContainer object of 39 artists>)
饼图
![在这里插入图片描述](https://img-blog.csdnimg.cn/f11c757890b64fedbfb70fb225ea59b4.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4OTI5MjIw,size_16,color_FFFFFF,t_70)
plt.pie()
size 各部分大小explode 设置各部分突出label 各部分标签labeldistance 标签文本距圆心位置,1.1表示1.1倍半径autopct 圆内文本shadow 是否有阴影startangle 起始角度,默认从0开始逆时针pctdistance 圆内文本距圆心距离返回值l_text 圆内文本,p_text 圆外文本
|