matplotlib绘图的核心原理讲解(超详细)

matplotlib绘图的核心原理讲解(超详细)1 核心原理讲解 使用 matplotlib 绘图的原理 主要就是理解 figure 画布 axes 坐标系 axis 坐标轴 三者之间的关系 以 美院学生张三写生画画 为例 来说明这三者之间的关系 首先 张三想要画画 是不是需要在画板上面准备一张画布 对比到 matplotlib 中 就相当于初始化了一张 figure 画布 我们画的任何图形 都是在这张 figure 画布 上操作的

1、核心原理讲解

在这里插入图片描述
  使用matplotlib绘图的原理,主要就是理解figure(画布)、axes(坐标系)、axis(坐标轴)三者之间的关系。
在这里插入图片描述
张三的画板
在这里插入图片描述
matplotlib绘图
在这里插入图片描述












2、matplotlib库的安装与导入

1)安装
pip install matplotlib 
2)导入相关库

  现在你不需要关注下面代码具体是什么意思,有一个主观印象即可。我将会在以后的文章中,给大家一一介绍你不懂的哪些参数。

import numpy as np import pandas as pd import matplotlib as mpl import matplotlib.pyplot as plt # 排除警告信息 import warnings warnings.filterwarnings("ignore") # 打印版本信息 display(np.__version__) display(pd.__version__) display(mpl.__version__) # matplotlib画图常见参数设置 mpl.rcParams["font.family"] = "SimHei" # 设置字体 mpl.rcParams["axes.unicode_minus"]=False # 用来正常显示负号 plt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签 # 嵌入式显示图形 %matplotlib inline 

3、创建figure(画布)的两种方式

1)绘制一个最简单的折线图
import matplotlib as mpl import matplotlib.pyplot as plt x = [1,3,5,7] y = [4,9,6,8] plt.plot(x,y) plt.show() 
2)创建figure(画布)的两种方式
  • 隐式创建
  • 显示创建
① 隐式创建figure对象
② 隐式创建figure对象存在的问题
③ 显示创建figure对象:以后的文章会详细讲述布局设置
# 手动创建一个figure对象 figure = plt.figure() # 获取每个位置的axes对象 axes1 = figure.add_subplot(2,1,1) axes2 = figure.add_subplot(2,1,2) 
figure = plt.figure() axes1 = figure.add_subplot(2,1,1) axes2 = figure.add_subplot(2,1,2) axes1.plot([1,3,5,7],[4,9,6,8]) axes2.plot([1,2,4,5],[8,4,6,2]) figure.show() 

4、完整的绘图步骤

① 导库
import matplotlib as mpl import matplotlib.pyplot as plt 
② 创建figure画布对象
 如果绘制一个简单的小图形,我们可以不设置figure对象,使用默认创建的figure对象, 当然我们也可以显示创建figure对象。 如果一张figure画布上,需要绘制多个图形。那么就必须显示的创建figure对象,然后 得到每个位置上的axes对象,进行对应位置上的图形绘制。 
③ 根据figure对象进行布局设置
1*1 1*2 2*1 2*2 ... 
④ 获取对应位置的axes坐标系对象
figure = plt.figure() axes1 = figure.add_subplot(2,1,1) axes2 = figure.add_subplot(2,1,1) 
⑤ 调用axes对象,进行对应位置的图形绘制
 这一步,是我们传入数据,进行绘图的一步。对于图形的一些细节设置,都可以在这一步进行。 
⑥ 显示图形
 plt.show()或figure.show() 如果在pycharm中绘图的话,必须要加这句代码,才能显示。如果在notebook中进行绘图, 可以不用加这句代码,而是自动显示。 

5、绘图技巧(细节设置)

* figure 画布 * axes 坐标系,一个画布上可以有多个坐标系 * axis 坐标轴,一个坐标系中可以有多个坐标轴,一般都是二维平面坐标系,或者三维立体坐标系 * title 标题 * legend 图例 * grid 背景网格 * tick 刻度 * axis label 坐标轴名称 * tick label 刻度名称 * major tick label 主刻度标签 * minor tick label 副刻度标签 * line 线 * style 线条样式 * marker 点标记 * font 字体相关 

  通过对matplotlib绘图的原理,有所了解之后,我们需要学习的就是常见的matplotlib绘图技巧,常见的绘图技巧如上所示,这些绘图技巧都能够很好的帮助我们画出更美观、更直观的图形。下一节,我将会讲述matplotlib绘图技巧(千万不要错过)。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/206931.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午3:10
下一篇 2026年3月19日 下午3:10


相关推荐

  • [开发者笔记]Odin

    [开发者笔记]Odinhttps://github.com/chkinglee/odin#2020-05-311、elasticsearch搭建与启动2、springboot集成elasticsearchNote:在这里没有参照网上的方法添加elasticsearch的依赖,而是利用httpclientUtil写了一个EsUtil,对elasticsearch的读写实际是发起的http请求\3、代码思路1)需要能够解析配置文件中的自定义配置参数2)HttpClientUtil、EsUtil,可找…

    2022年7月21日
    27
  • 免费开源网站源码_内容网站源码

    免费开源网站源码_内容网站源码前言最近想着搭建一个API测试平台,基础的注册登录功能已经完成,就差测试框架的选型,最后还是选择了httprunner,github上已经有很多开源的httprunner测试平台,但是看了下都是基于

    2022年8月7日
    8
  • 什么是ARP欺骗_ARP欺骗防范

    什么是ARP欺骗_ARP欺骗防范ARP欺骗的本质是把虚假的IP-MAC映射关系通过ARP报文发给主机,让主机把虚假的IP-MAC映射存入ARP缓存表(可能是IP地址错误,也可能是MAC地址错误),让其无法正确发送数据漏洞的根源ARP协议是无连接操作系统收到ARP请求或响应后无法确认senderMAC和senderIP真假ARP欺骗伪造网关攻击者B伪造ARP报文(senderIP地址是网关的,senderMAC地址不是网关的),发送给网段内的主机A,那么主机A就会把网关的ip地址和伪造的mac地址缓存到arp缓.

    2025年7月3日
    5
  • js保留两位小数的方法_js保留4位小数

    js保留两位小数的方法_js保留4位小数计算过程中,发现浮点数如果没有小数位,就会自动舍掉小数点.现在想要做的是无论是整数还是多位小数,强制保留两位小数1.转为字符串,对字符串进行操作//强制保留2位小数,如:2,会在2后面补上00.即2.00 functiontoDecimal2(x){    varf=parseFloat(x);    if(isNaN(f)){   

    2022年8月10日
    10
  • JAVA内存泄漏和内存溢出的区别和联系

    JAVA内存泄漏和内存溢出的区别和联系JAVA 内存泄漏和内存溢出的区别和联系 1 内存泄漏 memoryleak 是指程序在申请内存后 无法释放已申请的内存空间 一次内存泄漏似乎不会有大的影响 但内存泄漏堆积后的后果就是内存溢出 2 内存溢出 outofmemory 指程序申请内存时 没有足够的内存供申请者使用 或者说 给了你一块存储 int 类型数据的存储空间 但是你却存储 long 类型的数据 那么

    2026年3月19日
    3
  • Java链表——遍历、查找、求链表长度

    Java链表——遍历、查找、求链表长度1.遍历非常简单的一段代码,只需要在节点不为空时,一个接一个地输出即可。publicvoidErgodic(){ ListNodeindexNode=head; while(indexNode.getNext()!=null){ System.out.print(indexNode.getVal()+””); indexNode=indexNode.getNext(); } }2.查找我们来做一个对值的查找…

    2022年5月13日
    65

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号