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中用于转换字母为小写的lower()方法使用简介
May 19 Python
通过Python使用saltstack生成服务器资产清单
Mar 01 Python
简述Python中的进程、线程、协程
Mar 18 Python
Python实现多线程HTTP下载器示例
Feb 11 Python
python生成词云的实现方法(推荐)
Jun 13 Python
python opencv实现任意角度的透视变换实例代码
Jan 12 Python
Python读取word文本操作详解
Jan 22 Python
对python中的xlsxwriter库简单分析
May 04 Python
Python Web编程之WSGI协议简介
Jul 18 Python
Python多进程入门、分布式进程数据共享实例详解
Jun 03 Python
Python基于smtplib协议实现发送邮件
Jun 03 Python
keras实现图像预处理并生成一个generator的案例
Jun 17 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
超神学院:天使彦公认最美的三个视角,网友:我的天使快下凡吧!
2020/03/02 国漫
dedecms系统的广告设置代码 基础版本
2010/04/09 PHP
php获取json数据所有的节点路径
2015/05/17 PHP
PHP数据库操作二:memcache用法分析
2017/08/16 PHP
事件绑定之小测试  onclick && addEventListener
2011/07/31 Javascript
网页源代码保护(禁止右键、复制、另存为、查看源文件)
2012/05/23 Javascript
基于jQuery的图片不完全按比例自动缩小
2014/07/11 Javascript
js设置控件的隐藏与显示的两种方法
2014/08/21 Javascript
JS的location.href跳出框架打开新页面的方法
2014/09/04 Javascript
学习JavaScript设计模式之中介者模式
2016/01/14 Javascript
深入分析javascript中console命令
2016/08/14 Javascript
浅谈JS封闭函数、闭包、内置对象
2017/07/18 Javascript
基于 Vue 实现一个酷炫的 menu插件
2017/11/14 Javascript
p5.js入门教程之小球动画示例代码
2018/03/15 Javascript
vue中的router-view组件的使用教程
2018/10/23 Javascript
Python队列的定义与使用方法示例
2017/06/24 Python
50行Python代码实现人脸检测功能
2018/01/23 Python
解决phantomjs截图失败,phantom.exit位置的问题
2018/05/17 Python
解决.ui文件生成的.py文件运行不出现界面的方法
2019/06/19 Python
python实现ip地址查询经纬度定位详解
2019/08/30 Python
解决django后台管理界面添加中文内容乱码问题
2019/11/15 Python
pycharm运行程序时看不到任何结果显示的解决
2020/02/21 Python
Python依赖包迁移到断网环境操作
2020/07/13 Python
OpenCV Python实现图像指定区域裁剪
2021/03/12 Python
利用python+request通过接口实现人员通行记录上传功能
2021/01/13 Python
详解如何用canvas画一个微笑的表情
2019/03/14 HTML / CSS
印尼第一大家居、生活和家具电子商务:Ruparupa
2019/11/25 全球购物
营业员实习自我鉴定
2013/12/07 职场文书
参观接待方案
2014/03/17 职场文书
中学生家长评语大全
2014/04/16 职场文书
档案信息化建设方案
2014/05/16 职场文书
2014年冬季防火方案
2014/05/21 职场文书
装饰工程师岗位职责
2014/06/08 职场文书
美化环境标语
2014/06/20 职场文书
公司领导班子四风对照检查材料
2014/09/27 职场文书
员工工作表现自我评价
2015/03/06 职场文书