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

作者:luckypuppy99 时间:2021-08-31 22:57:06 

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() # 最后调用此句,显示出绘制的图形。

来源:https://blog.csdn.net/tomorrowsummer/article/details/92084333

标签:Python,matplotlib,图形
0
投稿

猜你喜欢

  • Python3多线程基础知识点

    2022-03-05 13:05:44
  • 配置SQL Server以允许远程连接

    2010-03-08 13:12:00
  • 如何用ASP建立Index Server查询对象并为其参数赋值?

    2010-06-11 19:59:00
  • Python 判断奇数偶数的方法

    2023-03-03 18:16:31
  • numpy数据类型dtype转换实现

    2021-08-09 09:36:37
  • tornado捕获和处理404错误的方法

    2023-11-27 11:03:36
  • Windows下Anaconda下载安装与配置教程分享

    2023-09-29 22:37:11
  • python之数字图像处理方式

    2023-02-02 18:27:09
  • python3.6使用urllib完成下载的实例

    2023-08-03 21:21:13
  • 使用DIV+CSS设计网页的好处

    2007-10-14 15:02:00
  • php5.4传引用时报错问题分析

    2023-11-14 15:03:17
  • 教你学会使用Python正则表达式

    2023-01-17 14:08:56
  • Dreamweaver使用疑难解答

    2009-09-13 18:41:00
  • 解决在Dreamweaver中不支持中文文件名的方法

    2010-09-02 12:35:00
  • CSS执行顺序与优先权的问题

    2010-08-23 16:21:00
  • PyCharm+Miniconda3安装配置教程详解

    2022-03-26 08:31:16
  • 可以用ASP生成由客户浏览器处理的客户端脚本吗?

    2009-11-01 18:06:00
  • jsp中文显示问号问题解决方法

    2023-07-22 10:33:50
  • python中删除某个元素的方法解析

    2021-02-02 00:05:40
  • 执行python脚本并传入json数据格式参数方式

    2021-12-09 21:22:14
  • asp之家 网络编程 m.aspxhome.com