Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)


Posted in Python onApril 17, 2020

Python的matplotlib模块绘制图形功能很强大,今天就用pyplot绘制一个简单的图形,图形中包括曲线、曲线上的点、注释和指向点的箭头。

1. 结果预览:

Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)

2. 代码如下:

from matplotlib import pyplot as plt
import numpy as np
 
# 绘制曲线
x = np.linspace(2, 21, 20) # 取闭区间[2, 21]之间的等差数列,列表长度20
y = np.log10(x) + 0.5
plt.figure() # 添加一个窗口。如果只显示一个窗口,可以省略该句。
plt.plot(x, y) # plot在一个figure窗口中添加一个图,绘制曲线,默认颜色
 
# 绘制离散点
plt.plot(x, y, '.y') # 绘制黄色的点,为了和曲线颜色不一样
x0, y0 = 15, np.log10(15) + 0.5
plt.annotate('Interpolation point', xy=(x0, y0), xytext=(x0, y0 - 1), arrowprops=dict(arrowstyle='->')) # 添加注释
for x0, y0 in zip(x, y):
  plt.quiver(x0, y0 - 0.3, 0, 1, color='g', width=0.005) # 绘制箭头
 
x = range(2, 21, 5)
y = np.log10(x) + 0.5
plt.plot(x, y, 'om') # 绘制紫红色的圆形的点
x0, y0 = 7, np.log10(7) + 0.5
plt.annotate('Original point', xy=(x0, y0), xytext=(x0, y0 - 1), arrowprops=dict(arrowstyle='->'))
for x0, y0 in zip(x, y):
  plt.quiver(x0, y0 + 0.3, 0, -1, color='g', width=0.005) # 绘制箭头
 
# 设置坐标范围
plt.xlim(2, 21) # 设置x轴范围
plt.xticks(range(0, 23, 2)) # 设置X轴坐标点的值,为[0, 22]之间的以2为差值的等差数组
plt.ylim(0, 3) # 设置y轴范围
 
# 显示图形
plt.show() # 显示绘制出的图

3. 解析

1)导入matplotlib模块的pyplot类,这里主要用了pyplot里的一些方法。导入numpy用于生成一些数列。分别给pyplot和numpy记个简洁的别名plt和np,方便使用。

2)np.linspace(start, stop, num),可生成闭区间[stop, stop]里的数组长度为num的等差数列。本例子中想作为插值点显示出来。

3)plt.figure()用于添加窗口。如果把所有图形绘制在一个窗口里,该句可以省略,因为figure(1)会被默认创建。

如果想添加窗口,就再添加一句plt.figure(),plt.figure(num)的窗口序号num自动自增。

4)plt.plot()向窗口里绘制曲线,传递x, y参数,分别为横轴和纵轴。

本例中所有图形绘制在一个绘图区域里。如果想添加2个绘图区域呢?如下列代码:

x = np.linspace(2, 21, 20)
y1 = np.log10(x) + 0.5
y2 = np.log10(x) + 1
plt.subplot(211)
plt.plot(x, y1)
 
plt.subplot(212)
plt.plot(x, y2)
plt.show()

plt.subplot(rows, cols, figurenum)添加子绘图区域,参数分别为:把窗口划分为rows行cols列绘图区域,figurenum表示第几个绘图区域。plt.subplot(211)=plt.subplot(2, 1, 1),绘图区域数小于10时可省略逗号。创建的图形为:

Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)

5) plt.plot(x, y, '.y') # 多写该句为了显示点和曲线的颜色不一样。'.y'表示只把绘制曲线的点表示出来,颜色为黄色。

6)plt.annotate(s, xy, xytext) # 添加注释,除s、xy外其余还有若干可选参数。

s:注释文本,

xy:指定要注释的(x,y)坐标点,

xytext:可选,指定要放置文本的(x,y)坐标点。如果没有,则默认为xy注释点。

arrowprops:可选,字典形式,用于在xy坐标和xytext间绘制一个指定形状的箭头,本例中指定一个'->'类型的箭头,箭头头部宽和高为0.2/0.4。

7)plt.quiver(X, Y, U, V, C, **kw) # 绘制一个二维的箭头,X, Y, C可以缺失。

X, Y:箭头的位置,

U, V:表示箭头的方向,

C:设置箭头的颜色,

**kw里还有一系列参数可以设置,包括单位、箭头角度、箭头的头部宽高设置等,这里设置了颜色color和箭头的轴宽度width。

如果设置了C,再设置color将不生效。

有C为啥还有color可选设置呢?疑问暂留,没找到结果。

8)plt.xlim(min, max) / plt.ylim(min, max) 设置x轴/y轴的范围。

9)plt.xticks() 设置x轴坐标点的值。如果plt.xlim和plt.xticks设置的范围不一致,怎么显示?以最后设置的范围为准。

10)plt.show() # 最后调用此句,显示出绘制的图形。

以上这篇Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
MySQL中表的复制以及大型数据表的备份教程
Nov 25 Python
Python多线程爬虫实战_爬取糗事百科段子的实例
Dec 15 Python
用Python进行简单图像识别(验证码)
Jan 19 Python
Django实现组合搜索的方法示例
Jan 23 Python
Django框架模型简单介绍与使用分析
Jul 18 Python
Python selenium使用autoIT上传附件过程详解
May 26 Python
Python 如何对文件目录操作
Jul 10 Python
深入分析python 排序
Aug 24 Python
python实现图书馆抢座(自动预约)功能的示例代码
Sep 29 Python
django项目中使用云片网发送短信验证码的实现
Jan 19 Python
selenium携带cookies模拟登陆CSDN的实现
Jan 19 Python
Python初识逻辑与if语句及用法大全
Aug 07 Python
Python读取excel文件中带公式的值的实现
Apr 17 #Python
在Matplotlib图中插入LaTex公式实例
Apr 17 #Python
python中for in的用法详解
Apr 17 #Python
解决Jupyter无法导入已安装的 module问题
Apr 17 #Python
使用 Python 读取电子表格中的数据实例详解
Apr 17 #Python
jupyter notebook 恢复误删单元格或者历史代码的实现
Apr 17 #Python
jupyternotebook 撤销删除的操作方式
Apr 17 #Python
You might like
微信公众平台消息接口校验与消息接口响应实例
2014/12/23 PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
2016/09/11 PHP
PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析
2017/07/03 PHP
php和vue配合使用技巧和方法
2019/05/09 PHP
js加载之使用DOM方法动态加载Javascript文件
2013/11/08 Javascript
NodeJS制作爬虫全过程
2014/12/22 NodeJs
javascript中使用正则表达式清理table样式的代码
2020/04/01 Javascript
jquery地址栏链接与a标签链接匹配之特效代码总结
2015/08/24 Javascript
PHP+MySQL+jQuery随意拖动层并即时保存拖动位置实例讲解
2015/10/09 Javascript
AngularJS基础 ng-if 指令用法
2016/08/01 Javascript
jsonp跨域请求实现示例
2017/03/13 Javascript
强大的JavaScript响应式图表Chartist.js的使用
2017/09/13 Javascript
微信小程序导航栏滑动定位功能示例(实现CSS3的positionsticky效果)
2019/01/24 Javascript
微信小程序bindinput与bindsubmit的区别实例分析
2019/04/17 Javascript
谈一谈vue请求数据放在created好还是mounted里好
2020/07/27 Javascript
JavaScript使用setTimeout实现倒计时效果
2021/02/19 Javascript
PHP魔术方法__ISSET、__UNSET使用实例
2014/11/25 Python
利用Python爬取微博数据生成词云图片实例代码
2017/08/31 Python
python之matplotlib学习绘制动态更新图实例代码
2018/01/23 Python
python使用tornado实现简单爬虫
2018/07/28 Python
Python反射和内置方法重写操作详解
2018/08/27 Python
Python实现的旋转数组功能算法示例
2019/02/23 Python
对python中基于tcp协议的通信(数据传输)实例讲解
2019/07/22 Python
python生成requirements.txt的两种方法
2019/09/18 Python
tensorflow 初始化未初始化的变量实例
2020/02/06 Python
django实现后台显示媒体文件
2020/04/07 Python
利用Python如何实时检测自身内存占用
2020/05/09 Python
django 连接数据库出现1045错误的解决方式
2020/05/14 Python
python+requests接口自动化框架的实现
2020/08/31 Python
Pytest测试框架基本使用方法详解
2020/11/25 Python
房屋租赁协议书范本
2014/04/10 职场文书
一年级小学生评语
2014/04/22 职场文书
体育运动口号
2014/06/09 职场文书
公司行政主管岗位职责
2015/04/09 职场文书
体育委员竞选稿
2015/11/21 职场文书
2019年冬至:天冷暖人心的问候祝福语大全
2019/12/20 职场文书