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 相关文章推荐
python复制文件代码实现
Dec 23 Python
Python制作爬虫抓取美女图
Jan 20 Python
Ruby使用eventmachine为HTTP服务器添加文件下载功能
Apr 20 Python
Python3模拟登录操作实例分析
Mar 12 Python
Python+threading模块对单个接口进行并发测试
Jun 25 Python
详解python实现交叉验证法与留出法
Jul 11 Python
利用Python小工具实现3秒钟将视频转换为音频
Oct 29 Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
Feb 29 Python
Python3爬虫中pyspider的安装步骤
Jul 29 Python
简述python Scrapy框架
Aug 17 Python
python 如何上传包到pypi
Dec 24 Python
linux系统下pip升级报错的解决方法
Jan 31 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
在Windows系统上安装PHP运行环境文字教程
2010/07/19 PHP
探讨多键值cookie(php中cookie存取数组)的详解
2013/06/06 PHP
PHP抓取、分析国内视频网站的视频信息工具类
2014/04/02 PHP
PHP使用CURL实现对带有验证码的网站进行模拟登录的方法
2014/07/23 PHP
PHP的Socket通信之UDP通信实例
2015/07/02 PHP
PHP使用SMTP邮件服务器发送邮件示例
2018/08/28 PHP
JavaScript中逗号运算符介绍及使用示例
2015/03/13 Javascript
javascript实现点击后变换按钮显示文字的方法
2015/05/13 Javascript
微信小程序左滑删除效果的实现代码
2017/02/20 Javascript
JavaScript中三种常见的排序方法
2017/02/24 Javascript
JS简单生成随机数(随机密码)的方法
2017/05/11 Javascript
详解利用jsx写vue组件的方法示例
2017/07/17 Javascript
Bootstrap Table 在指定列中添加下拉框控件并获取所选值
2017/07/31 Javascript
jQuery实现鼠标响应式透明度渐变动画效果示例
2018/02/13 jQuery
vue的传参方式汇总和router使用技巧
2018/05/22 Javascript
vue slots 组件的组合/分发实例
2018/09/06 Javascript
javascript设计模式 ? 适配器模式原理与应用实例分析
2020/04/13 Javascript
JavaScript实现猜数字游戏
2020/05/20 Javascript
详解在Python程序中自定义异常的方法
2015/10/16 Python
利用Python开发微信支付的注意事项
2016/08/19 Python
详解Python下Flask-ApScheduler快速指南
2018/11/04 Python
python程序控制NAO机器人行走
2019/04/29 Python
python实现各种插值法(数值分析)
2019/07/30 Python
Django中template for如何使用方法
2021/01/31 Python
DBA数据库管理员JAVA程序员架构师必看
2016/02/07 面试题
公司清洁工岗位职责
2013/12/14 职场文书
教育科研先进个人材料
2014/01/26 职场文书
蛋糕店的商业计划书范文
2014/01/27 职场文书
特色蛋糕店创业计划书
2014/01/28 职场文书
社区学雷锋活动策划方案
2014/01/30 职场文书
工作骂脏话检讨书
2014/10/05 职场文书
教师党员批评与自我批评发言稿
2014/10/15 职场文书
单位工作证明范本
2015/06/15 职场文书
鲁滨孙漂流记读书笔记
2015/06/30 职场文书
Nginx域名转发使用场景代码实例
2021/03/31 Servers
Mysql中where与on的区别及何时使用详析
2021/08/04 MySQL