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通过邮件服务器端口发送邮件的方法
Apr 30 Python
玩转python爬虫之cookie使用方法
Feb 17 Python
老生常谈Python进阶之装饰器
May 11 Python
python绘制铅球的运行轨迹代码分享
Nov 14 Python
numpy中索引和切片详解
Dec 15 Python
django的ORM操作 增加和查询
Jul 26 Python
python正则爬取某段子网站前20页段子(request库)过程解析
Aug 10 Python
Django url,从一个页面调到另个页面的方法
Aug 21 Python
利用Python的folium包绘制城市道路图的实现示例
Aug 24 Python
降低python版本的操作方法
Sep 11 Python
Pandas的数据过滤实现
Jan 15 Python
Python自动操作神器PyAutoGUI的使用教程
Jun 16 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
PHP聊天室技术
2006/10/09 PHP
PHP的简易冒泡法代码分享
2012/08/28 PHP
php禁止浏览器使用缓存页面的方法
2014/11/07 PHP
php基于双向循环队列实现历史记录的前进后退等功能
2015/08/08 PHP
PHP + plupload.js实现多图上传并显示进度条加删除实例代码
2017/03/06 PHP
thinkPHP3.2.3实现阿里大于短信验证的方法
2018/06/06 PHP
javascript阻止浏览器后退事件防止误操作清空表单
2013/11/22 Javascript
BOOTSTRAP时间控件显示在模态框下面的bug修复
2015/02/05 Javascript
javascript中局部变量和全局变量的区别详解
2015/02/27 Javascript
js实现的倒计时按钮实例
2015/06/24 Javascript
jQuery validate验证插件使用详解
2016/05/11 Javascript
微信小程序 数据交互与渲染实例详解
2017/01/21 Javascript
如何快速上手Vuex
2017/02/14 Javascript
JavaScrpt的面向对象全面解析
2017/05/09 Javascript
JS实现预加载视频音频/视频获取截图(返回canvas截图)
2017/10/09 Javascript
动态Axios的配置步骤详解
2018/01/12 Javascript
详解滑动穿透(锁body)终极探索
2019/04/16 Javascript
Vue2.0 实现页面缓存和不缓存的方式
2019/11/12 Javascript
vue中的v-model原理,与组件自定义v-model详解
2020/08/04 Javascript
JS+Canvas实现五子棋游戏
2020/08/26 Javascript
Python简单定义与使用字典dict的方法示例
2017/07/25 Python
Python WEB应用部署的实现方法
2019/01/02 Python
python 实现图片旋转 上下左右 180度旋转的示例
2019/01/24 Python
python代理工具mitmproxy使用指南
2019/07/04 Python
基于Django ORM、一对一、一对多、多对多的全面讲解
2019/07/26 Python
python3操作注册表的方法(Url protocol)
2020/02/05 Python
浅谈Python协程
2020/06/17 Python
Html5在手机端调用相机的方法实现
2020/05/13 HTML / CSS
美国波西米亚风格服装品牌:Show Me Your Mumu
2018/01/05 全球购物
Kaufmann Mercantile官网:家居装饰、配件、户外及更多
2018/09/28 全球购物
Myholidays美国:在线旅游网站
2019/08/16 全球购物
建筑毕业生自我鉴定
2013/10/18 职场文书
美丽的大脚观后感
2015/06/03 职场文书
2016年党建工作简报
2015/11/26 职场文书
Python 如何解决稀疏矩阵运算
2021/05/26 Python
Android开发之WECHAT微信小程序路由跳转的两种形式
2022/04/12 Java/Android