Matplotlib面向对象简介

Matplotlib面向对象主要是可以实现更加定制化的绘图,但相比于通过直接使用pyplot而言使用也更加复杂。Matplotlib中大的对象主要分为三个,FigureCanvas(画布),Figure(图),Axes(绘制的坐标轴)。

一张图中绘制多个子图

import matplotlib.pyplot as plt
import numpy as npx = np.arange(1, 100)# 创建一个图
fig = plt.figure()
#331表示,将这个图分为3*3的格式(即一共可以添加9个子图),并添加一号子图
ax1 = fig.add_subplot(331)
ax1.plot(x,x)
#334表示向这个3*3的图中添加四号子图
ax2 = fig.add_subplot(334)
ax2.plot(x,np.log(x))# 对于同一个figure而言,划分成的格式应该一样
# 例如对于上边的figure而言,fig.add_subplot()中的参数只能是“33X”
# 33表示的是将一个figure按照3*3划分,X表示要操作的子图,取值范围为1-9plt.show()

生成多张图

生成多张图可以通过创建多个Figure对象来实现

import matplotlib.pyplot as plt
import numpy as npx = np.arange(0, 100)fig1 = plt.figure()
ax1 = fig1.add_subplot(111)ax1.plot(x,x)fig2 = plt.figure()
ax2 = fig2.add_subplot(111)ax2.plot(x,-x)plt.show()

网格背景及图例的显示

import matplotlib.pyplot as plt
import numpy as npx = np.arange(1,10,1)plt.plot(x,x*2,label="Normal")
plt.plot(x,x*3,label="Fast")
plt.plot(x,x*4,label="Faster")#网格的显示可以通过plt.grid(True)来显示
plt.grid(True)
#图例的显示可以通过plt.legend()来显示,需要提前给要绘制的图形添加上label
plt.legend()plt.show()

官网对于legend的参数的详解

官网对于grid的参数的详解

在使用面向对象的绘图中可以通过对Axes的操作来实现图例的显示

x = np.arange(1,10,1)fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.plot(x,x*2,label="Normal")
ax1.legend()plt.show()

调整坐标轴范围

调整坐标轴范围可以有多种方式,

import matplotlib.pyplot as plt
import numpy as npx = np.arange(1,11,1)fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.plot(x,x)
  1. 方式一

    
    #使用plt.axis()函数,四个值分别对应着x轴的起点,终点,y轴的起点,终点plt.axis([5,10,4,8])
  2. 方式二

    
    #使用plt.xlim()函数plt.xlim(xmin=2,xmax=8)
    plt.ylim(ymin=2,ymax=8)

调整坐标轴的刻度

import numpy as np
import matplotlib.pyplot as pltx = np.arange(1,11,1)plt.plot(x,x)ax = plt.gca()
#只调整x轴刻度
ax.locator_params('x',nbins=20)plt.show()

调整坐标轴的刻度有两种方式:

  1. 通过Axes对象的locator_params()函数(面向对象的方式)

  2. 通过matplotlib.pyplot的locator_params()函数

两种方式其实使用的都是locator_params(),其有多个参数可供选择

常用参数有:

  • nbins:划分成多少份刻度

  • x:表示调整的是x轴刻度

  • y:表示调整的是y轴刻度

  • 注:若x,y都不填则默认参数为both,即两个轴都会调整

locator_params()官网参数详解

绘制样式的美化

之前的绘制都是直接使用原生的样式来绘制,而Matplotlib内建的提供了更多的多种样式可供我们选择。

#通过使用该方法可以美化我们绘制出的图形
plt.style.use('ggplot')#该方法可以查看当前可供选择的style
plt.style.available

Matplotlib学习笔记(2)--Matplotlib面向对象绘图相关推荐

  1. matplotlib学习笔记 - 散点图、条形图和直方图

    Matplotlib 学习笔记 - 散点图.条形图和直方图 散点图 from matplotlib import pyplot as plt from matplotlib import font_m ...

  2. matplotlib学习笔记(3)---热力图(Heat Map)

    matplotlib学习笔记(3)-热力图(Heat Map) import matplotlib.pylab as plt import seaborn as sns import numpy as ...

  3. 【莫烦Python】Matplotlib学习笔记(二)

    [莫烦Python]Matplot学习笔记(一) [莫烦Python]Matplotlib学习笔记(二) 一.Bar柱状图/条形图 二.Contours等高线图 三.Image图像 四.3D图像 五. ...

  4. MATLAB学习笔记——二维和三维绘图

    MATLAB学习笔记--二维和三维绘图 近期练习matlab的二维和三维绘图,整理一下,以防忘记. 文章目录 MATLAB学习笔记--二维和三维绘图 一.二维绘图 1.plot命令 2.fplot 命 ...

  5. Qt 学习笔记(5)绘图 五子棋游戏

    在上一篇博客C++ Qt学习笔记(4)绘图中介绍了Qt中的绘图方法,基于上一篇的博客的知识,使用QPainter设计一个五子棋的棋盘,后续会完成五子棋的游戏设计. 1. 棋盘的设计 首先需要绘制棋盘的 ...

  6. Java学习笔记 六、面向对象编程中级部分

    Java学习笔记 六.面向对象编程中级部分 包 包的注意事项和使用细节 访问修饰符 访问修饰符的注意事项和使用细节 面向对象编程三大特征 封装 封装的实现步骤(三步) 继承 继承的细节问题 继承的本质 ...

  7. python可视化:matplotlib学习笔记

    信息可视化是数据分析的一块重要内容.这是一个探索性的过程.比如说,可以帮助我们坚定离群值,或者必要的数据转换,又或者是构建一个理想的模型.对于其他的一些领域,也可以进行web可视化.Python有许多 ...

  8. Python数据分析三剑客学习笔记Day6——matplotlib包的使用:数据可视化,简单绘制柱状图、曲线图、饼图、频率分布直方图

    本文是视频Python数据分析三剑客 数学建模基础 numpy.pandas.matplotlib的学习笔记. -------------------------------------------- ...

  9. Python数据科学学习笔记之——Matplotlib数据可视化

    Matplotlib 数据可视化 1.Matplotlib 常用技巧 1.1.导入 Matplotlib import matplotlib as mpl import matplotlib.pypl ...

  10. matplotlib学习笔记——入门版(超详细)

    最近才肝完的matplotlib入门教程,学习笔记顺便写上.欢迎大家在评论区补充.提问-- print('--------------------------------------------mat ...

最新文章

  1. word 生成HTML
  2. linux进不了容器配置目录,linux – 在Docker容器中使用bcrypt的ELF头文件或安装问题...
  3. linux-mint 安装 python 包 Gevent
  4. 2.2 清除标注错误的数据-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授
  5. kettle预览点两下才出数_BBG代王 | 7.16直播预览
  6. [USACO14JAN]记录奥林比克
  7. 伪装 php 版本号,linux伪装隐藏Nginx,PHP版本号提升服务器安全性
  8. liunx常用命令笔记
  9. php转盘中奖率,PHP大转盘中奖概率算法实例_PHP
  10. python3 字符串格式化_Python3-字符串格式化
  11. miui通知栏要点两下_「MIUI玩机技巧56」小米应用商店 新增 通知栏快捷入口
  12. 易福门流量计SA5000
  13. SAP培训行业权威评测---51sap培训评测网(www.51sap.net)
  14. 【GitHub】GitHub上指定文件夹轻松下载
  15. Ubuntu 11.10安装QQ2012
  16. AutoCAD 2004-2022 官方简体中文版下载直链
  17. 从VIVO到华为,让人目瞪口呆的“未来SMT智能工厂”亮相
  18. Javaweb学习笔记3—Serverlet
  19. java生成AES秘钥
  20. (邱维声)高等代数课程笔记:矩阵的加法、数量乘法与乘法

热门文章

  1. 魔域富甲天下mysql打不开_《魔域》魔域3.2无敌版之富甲天下心得
  2. 一个挺酷的flash图片展示效果
  3. 教你怎样把在网上看到的视频下到电脑上
  4. 第六课 田中さんは新聞を読みます。
  5. CPU缓存越大越好吗?你踩过哪些坑?
  6. 自如网房源释放自动提醒爬虫
  7. NTP时间服务器(带MD5身份验证)
  8. 前向型神经网络之BPNN(附源码)
  9. win11安装docker
  10. 大数据文档PDF开放下载