机器学习——Matplotlib入门教程
文章目录
- 1.问题区
- 2. matplotlib.pyplot简介
- 1.Pyplot中的基础函数解析
- 3. 使用Matplotlib画图基本步骤
- 基础方法解析 :
- 基础参数解析:
- Line Styles线条形状:
- Markers 折点形状选择:
- Colors
- 管理多个子图
- 4. 实战
- 2.初级数据可视化——画图
- 简单二维图
本教程只是带领读者体验一下Maplotlib使用的基本方法
下一章我们将进行进阶教程
1.问题区
1.为什么 使用 plt.gcf().set_facecolor(np.ones(3)* 240 / 255) 后 plt.figure 会失效。
2. matplotlib.pyplot简介
Matplotlib 是 Python 的绘图库。 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。 它也可以和图形工具包一起使用,如 PyQt 和 wxPython。
matplotlib.pyplot 是命令风格函数的集合,使 Matplotlib 像 MATLAB 一样工作。每个 Pyplot 函数对图形做一些修改,例如:创建一个图形,在图形中创建一个绘图区域,在绘图区域中回值一些线条,用标签装饰图形等等。
博主喜欢上来就看见学习结果,所以
看第一个程序:
import matplotlib.pyplot as plt
from matplotlib import pyplot as pltif __name__ == '__main__':
#定义两个列表分别作为X,Y轴x_data=['2011','2013','2015','2017','2019','2021']y_data=['1','2','3','4','5','6']
#第一个列表表示横坐标,第二个列表示纵坐标plt.plot(x_data,y_data)
#调用show()方法plt.show()
结果:
(如果在plot()中只传入一个list,则默认作为Y轴数据)
1.Pyplot中的基础函数解析
matplotlib.pyplot.plot(*args, scalex=True, scaley=True, data=None, **kwargs)[source] | |
---|---|
plot([x], y, [fmt], *, data=None, **kwargs) | |
plot([x], y, [fmt], [x2], y2, [fmt2], …, **kwargs) |
点或线节点的坐标由x,y给出。
可选参数fmt是定义颜色、标记和线型等基本格式的方便方法。这是一种快捷的字符串表示法,在下面的注释部分有描述。
3. 使用Matplotlib画图基本步骤
基础方法解析 :
plot中的方法 | 作用 |
---|---|
plt.xlabel(“发布日期”) | 设置x轴名称 |
plt.ylabel(“小说数量”) | 设置y轴名称 |
xticks() | 设置x轴刻度 |
yticks() | 设置y轴刻度 |
plt.title(“80小说网活跃度”) | 设置图像标题 |
plt.legend(loc=“upper left”) | 设置折线声明位置 |
plt.show() | 将图像展示出来 |
plot中的方法 | 作用 |
---|---|
plt.gcf().set_facecolor(np.ones(3)* 240 / 255) | 生成画布的大小 |
plt.grid() | 生成网格(可以设置线的格式) |
plt.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)
plt.figure参数 | 作用 |
---|---|
num | 图像编号或名称,数字为编号 ,字符串为名称 |
figsize | 指定figure的宽和高,单位为英寸figsize=(4,3) |
dpi | 参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80 |
facecolor | 背景颜色 |
edgecolor | 边框颜色 |
frameon | 是否显示边框 |
fig=plt.figure(figsize=(4,3),facecolor=‘blue')
基础参数解析:
函数中不同参数 | 作用 |
---|---|
plot(x, y) | 使用默认线型和颜色打印x和y |
plot(x, y, ‘bo’) | 使用蓝色圆圈标记绘制x和y |
plot(y) | 绘图y使用x作为索引数组0…N-1 |
plot(y, ‘r+’) | 同上,但带有红色加号 |
linewidth=“ ” | 设置线宽 |
linestyle=“ ” | 设置线格式 |
color=“ ” | |
marker=" h / * / s / p " | 用来设置节点样式 |
ms=1/5/10 | 设置节点大小 |
label=" 折线代表的对象 " | 设置折线标题 |
Line Styles线条形状:
character | description |
---|---|
‘-’ | solid line style 实线样式 |
‘–’ | dashed line style 虚线样式 |
‘-.’ | dash-dot line style 点划线样式 |
‘:’ | dotted line style 虚线样式 |
Markers 折点形状选择:
character | description |
---|---|
‘.’ | point marker 点标记 |
‘,’ | pixel marker 像素标记 |
‘o’ | circle marker o形圈标记 |
‘v’ | triangle_down marker “v”形三角向下标记 |
‘^’ | triangle_up marker “^”三角形向上标记 |
‘<’ | triangle_left marker |
‘>’ | triangle_right marker '>'三角形\u右标记 |
‘1’ | tri_down marker “1”三角向下标记 |
‘2’ | tri_up marker “2”三角标记 |
‘3’ | tri_left marker “3”左标记 |
‘4’ | tri_right marker “4”tri\u右标记 |
‘s’ | square marker “s”方形标记 |
‘p’ | pentagon marker “p”五边形标记 |
‘*’ | star marker “*”星形标记 |
‘h’ | hexagon1 marker “h”六边形标记 |
‘H’ | hexagon2 marker “H”六边形2标记 |
‘+’ | plus marker “+”加号 |
‘x’ | x marker “x”x标记 |
‘D’ | diamond marker “D”菱形标记 |
‘d’ | thin_diamond marker “d”细钻石标记 |
’ | ’ |
‘_’ | hline marker ''线标记 |
Colors
character | description |
---|---|
‘b’ | blue |
‘g’ | green |
‘r’ | red |
‘c’ | cyan 青色 |
‘m’ | magenta 洋红色 |
‘y’ | yellow |
‘k’ | black |
‘w’ | white |
Example format strings:
字母 | 作用 |
---|---|
‘b’ blue markers with default shape 带默认形状的蓝色标记 | |
‘or’ red circles 红圈 | |
‘-g’ green solid line 绿色实线 | |
‘–’ dashed line with default color 带默认颜色的虚线 | |
‘^k:’ black triangle_up markers connected by a dotted line 黑色三角形#用虚线连接的标记 |
管理多个子图
在一个数据图上包含多个子图
调用subplot()函数可以创建多个子图,然后程序就可以在子图上进行绘制
subplot(nrows,ncols,index,**kwargs)函数中的nrows参数指定将数据图域分为多少行;nclos参数指定将数据图域分为多少列;index参数指定获得第几个区域。
import matplotlib.pyplot as plt
import numpy as np
import math
plt.figure(facecolor='green')#生成sin和cos三角函数图像
#定义从-pi到pi之间的数据平均取640个数据
x1_data=np.linspace(-np.pi,np.pi,64,endpoint=True)
x=[-5,-4,-3,-2,-1,0,1,2,3,4,5]
plt.subplot(2,2,1)
#将figure分为两行两列将该图形放入第一个网格中
plt.plot(x1_data,np.sin(x1_data),label='sin')
plt.grid(c='g',linestyle='-.') # 生成网格
plt.plot(x1_data,np.cos(x1_data),label='cos')plt.subplot(2,2,2)
plt.plot(x1_data,np.cos(x1_data),label='cos')
plt.legend('upperleft')
#生成网格便于观察
plt.grid(c='r',linestyle=':') # 生成网格plt.subplot(2,2,3)
plt.plot(x1_data,np.tan(x1_data))
plt.plot(x,x)plt.plot(x1_data,np.cos(x1_data),label='cos')
plt.grid(c='m',linestyle='--') # 生成网格plt.subplot(2,2,4)
plt.grid(c='m',linestyle='--') # 生成网格
plt.plot(x,x)plt.show()
结果
加入plt.gcf().set_facecolor(np.ones(3)* 240 / 255) # 生成画布的大小之后
经过我实际测试我发现这个方法加入后 plt.figure 函数失效了。
4. 实战
2.初级数据可视化——画图
解决中文乱码问题
# 处理乱码
matplotlib.rcParams['font.sans-serif'] = ['SimHei'] # 用黑体显示中文
简单二维图
import matplotlib.pyplot as plt
from matplotlib import pyplot as pltif __name__ == '__main__':x_data=['2011','2013','2015','2017','2019','2021']y_data=['1','3','9','27','81','243']plt.plot(x_data, y_data, 'go-', label='line 4', linewidth=1)plt.show()
linewidth=1
import matplotlib.pyplot as plt
from matplotlib import pyplot as pltif __name__ == '__main__':x_data=['2011','2013','2015','2017','2019','2021']y_data=['1','3','9','27','81','243']plt.plot(x_data, y_data, 'm--h',label='line 1', linewidth=1)plt.show()
plt.plot()
注意这里参数“go-”改为了“m–h”,“m–h其实是“m”,“–”,“h”组合而成,这验证了格式参数可以合并(具体参数上面的表格已经给出了一部分)
终极案例:
# -*- coding:utf-8 -*-
import matplotlib
import matplotlib.pyplot as plt
# 处理乱码
matplotlib.rcParams['font.sans-serif'] = ['SimHei'] # 用黑体显示中文
x = [1, 2, 3, 4]
y = [10, 50, 20, 100]
# "r" 表示红色,ms用来设置*的大小
plt.plot(x, y, "r", marker='*', ms=10, label="小说1——我的兄弟之顺溜之一战")
# plt.plot([1, 2, 3, 4], [20, 30, 80, 40], label="b")
#label : 给所绘制的曲线一个名字,此名字在图示/图例(legend)中显示
plt.plot([1, 2, 3, 4], [20, 30, 80, 40], marker="h",ms=10,label="小说2——我的兄弟之顺溜之二战")
plt.plot([1, 2, 3, 4], [30, 10, 60, 200], marker="p",ms=10,label="小说2——我的兄弟之顺溜之三战")
plt.plot([1, 2, 3, 4], [0, 80, 50, 150], marker="p",ms=10,label="小说2——我的兄弟之顺溜之四战")
plt.xticks(rotation=20)
plt.xlabel("发布日期")
plt.ylabel("小说数量")
plt.title("80小说网活跃度")
# upper left 将图例a显示到左上角
plt.legend(loc="upper left")
# 在折线图上显示具体数值, ha参数控制水平对齐方式, va控制垂直对齐方式
for x1, y1 in zip(x, y):plt.text(x1, y1 + 1, str(y1), ha='center', va='bottom', fontsize=20, rotation=0)
plt.savefig("a.jpg")
plt.show()
import matplotlib
import matplotlib.pyplot as plt
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
plt.xlabel('时间')
plt.ylabel('数量')
x=[1,3,5,7]
x1=[2,4,6,8]
y=[12,32,54,3]
y1=[23,56,23,67]
plt.title("柱状图练习")
plt.bar(x,y,color='r',label="A")
plt.bar(x1,y1,color='g',label='B')
plt.legend('uppper.right')
plt.show()
下一章将讲解3D画图和画函数图像
敬请期待:
机器学习——Matplotlib入门教程相关推荐
- Python机器学习算法入门教程(四)
Python机器学习算法入门教程(四) 文章目录 Python机器学习算法入门教程(四) Logistic回归算法(分类问题) 什么是分类问题? Logistic回归算法 数学解析Logistic回归 ...
- Python机器学习算法入门教程(三)
Python机器学习算法入门教程(三) 构建线性回归模型 一次函数 构建线性模型 假设函数图像 梯度下降求极值 导数 偏导数 梯度下降 sklearn应用线性回归算法 实现线性回归算法 准备数据 线性 ...
- Python机器学习算法入门教程(一)
Python机器学习算法入门教程 Python机器学习 教程特点 什么是人工智能? 写在前面的话 人工智能应用 人工智能发展简史 1.第一次兴起 2.第二次发展 3.第三次崛起 机器学习&深度 ...
- Matplotlib 入门教程
Matplotlib 入门教程 来源:Introduction to Matplotlib and basic line 译者:飞龙 协议:CC BY-NC-SA 4.0 在线阅读 PDF格式 EPU ...
- matplotlib入门教程笔记
Matplotlib 入门教程 来源:Introduction to Matplotlib and basic line 译者:飞龙 协议:CC BY-NC-SA 4.0 在线阅读 PDF格式 EPU ...
- 《数学之美》——机器学习最佳入门教程
本文转载至:http://www.cricode.com/3095.html 数学之美系列 目录 作者:吴军, Google研究员: 来源:Google黑板报 快课网整理 数学之美 一 统计语 ...
- 大数据分析——Matplotlib入门教程
文章目录 1.问题区 2. matplotlib.pyplot简介 1.Pyplot中的基础函数解析 3. 使用Matplotlib画图基本步骤 1.基础方法解析 : 2.基础参数解析: (1)Lin ...
- 『机器学习』入门教程汇总
这是我们老师根据现有资源整理的一个机器学习路径.涵盖了Numpy,Scipy,Pandas,Scikit-learn,Matplotlib 等开源工具的学习,并完成从数据清理.数据分析.模型构建,到最 ...
- 理想国matplotlib入门教程
简介 个人简介 姓名:张大鹏 性别:男 生日:1993年8月29日 经验:工作经验8年,IT技术培训经验3年 爱好:学习 座右铭:不积跬步无以至千里,不积小流无以成江海. 优点:自律,稳重,热爱学习 ...
最新文章
- Python培训分享:Python内置标准异常及其解析
- python3 matlabplot 和numpy 简单绘图
- OpenCL列举平台列表以及平台属性信息
- 罐中研讨会:设置JBoss BPM Suite全天研讨会
- linux多线程编程和linux 2.6下的nptl,Linux多線程編程和Linux 2.6下的NPTL
- touchesEnded不响应
- 前端人职场发展的 6 个方向
- 2016年度最受欢迎中国开源软件评选
- 格力发布公告称双11期间让利30亿元打击低质伪劣产品
- 如何添加页签_【康复晓讲台】不同失能者如何选择适合自己的轮椅(二)
- RecyclerView之自定义LayoutManager和SnapHelper
- linux内核 image,linux内核zImage详解
- iOS -- 开源项目和库
- 请假工资扣费总额计算机公式,病假扣款计算公式excel
- 什么是脏读,不可重复读,幻觉读?
- VisualSVN Server安装失败解决
- Jackson,Gson,Fastjson 的对比
- CS信号(片选信号)经常都是低电平有效
- 中望3D 2021 轴类零件灵活自动螺纹收尾
- java.lang.IllegalStateException: 提交响应后无法转发
热门文章
- npm install --save 、--save-dev 、-D、-S的区别详细解说
- 【数据库E-R图知识点和相关习题(复试真题)】
- 达梦dm8可视化工具_DM8(达梦8)数据库安装和使用
- 【C#进阶四】详细总结C#中的文件和I/O流之文件和目录(File 、 FileInfo、Directory、DirectoryInfo和Path)
- java寻宝题目,寻宝
- 全国计算机二级---公共基础部分知识点(自用总结)
- ISCC-2019部分wp
- SQL 汉字转拼音函数(转)+将表中汉字转拼音
- Nelder-Mead(内德-米德)算法
- 红米手机开发版怎么样获取ROOT权限