文章目录

  • 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入门教程相关推荐

  1. Python机器学习算法入门教程(四)

    Python机器学习算法入门教程(四) 文章目录 Python机器学习算法入门教程(四) Logistic回归算法(分类问题) 什么是分类问题? Logistic回归算法 数学解析Logistic回归 ...

  2. Python机器学习算法入门教程(三)

    Python机器学习算法入门教程(三) 构建线性回归模型 一次函数 构建线性模型 假设函数图像 梯度下降求极值 导数 偏导数 梯度下降 sklearn应用线性回归算法 实现线性回归算法 准备数据 线性 ...

  3. Python机器学习算法入门教程(一)

    Python机器学习算法入门教程 Python机器学习 教程特点 什么是人工智能? 写在前面的话 人工智能应用 人工智能发展简史 1.第一次兴起 2.第二次发展 3.第三次崛起 机器学习&深度 ...

  4. Matplotlib 入门教程

    Matplotlib 入门教程 来源:Introduction to Matplotlib and basic line 译者:飞龙 协议:CC BY-NC-SA 4.0 在线阅读 PDF格式 EPU ...

  5. matplotlib入门教程笔记

    Matplotlib 入门教程 来源:Introduction to Matplotlib and basic line 译者:飞龙 协议:CC BY-NC-SA 4.0 在线阅读 PDF格式 EPU ...

  6. 《数学之美》——机器学习最佳入门教程

    本文转载至:http://www.cricode.com/3095.html 数学之美系列 目录 作者:吴军, Google研究员:   来源:Google黑板报   快课网整理 数学之美 一 统计语 ...

  7. 大数据分析——Matplotlib入门教程

    文章目录 1.问题区 2. matplotlib.pyplot简介 1.Pyplot中的基础函数解析 3. 使用Matplotlib画图基本步骤 1.基础方法解析 : 2.基础参数解析: (1)Lin ...

  8. 『机器学习』入门教程汇总

    这是我们老师根据现有资源整理的一个机器学习路径.涵盖了Numpy,Scipy,Pandas,Scikit-learn,Matplotlib 等开源工具的学习,并完成从数据清理.数据分析.模型构建,到最 ...

  9. 理想国matplotlib入门教程

    简介 个人简介 姓名:张大鹏 性别:男 生日:1993年8月29日 经验:工作经验8年,IT技术培训经验3年 爱好:学习 座右铭:不积跬步无以至千里,不积小流无以成江海. 优点:自律,稳重,热爱学习 ...

最新文章

  1. Python培训分享:Python内置标准异常及其解析
  2. python3 matlabplot 和numpy 简单绘图
  3. OpenCL列举平台列表以及平台属性信息
  4. 罐中研讨会:设置JBoss BPM Suite全天研讨会
  5. linux多线程编程和linux 2.6下的nptl,Linux多線程編程和Linux 2.6下的NPTL
  6. touchesEnded不响应
  7. 前端人职场发展的 6 个方向
  8. 2016年度最受欢迎中国开源软件评选
  9. 格力发布公告称双11期间让利30亿元打击低质伪劣产品
  10. 如何添加页签_【康复晓讲台】不同失能者如何选择适合自己的轮椅(二)
  11. RecyclerView之自定义LayoutManager和SnapHelper
  12. linux内核 image,linux内核zImage详解
  13. iOS -- 开源项目和库
  14. 请假工资扣费总额计算机公式,病假扣款计算公式excel
  15. 什么是脏读,不可重复读,幻觉读?
  16. VisualSVN Server安装失败解决
  17. Jackson,Gson,Fastjson 的对比
  18. CS信号(片选信号)经常都是低电平有效
  19. 中望3D 2021 轴类零件灵活自动螺纹收尾
  20. java.lang.IllegalStateException: 提交响应后无法转发

热门文章

  1. npm install --save 、--save-dev 、-D、-S的区别详细解说
  2. 【数据库E-R图知识点和相关习题(复试真题)】
  3. 达梦dm8可视化工具_DM8(达梦8)数据库安装和使用
  4. 【C#进阶四】详细总结C#中的文件和I/O流之文件和目录(File 、 FileInfo、Directory、DirectoryInfo和Path)
  5. java寻宝题目,寻宝
  6. 全国计算机二级---公共基础部分知识点(自用总结)
  7. ISCC-2019部分wp
  8. SQL 汉字转拼音函数(转)+将表中汉字转拼音
  9. Nelder-Mead(内德-米德)算法
  10. 红米手机开发版怎么样获取ROOT权限