使用matplotlib绘图库的pyplot快速绘图

使用matplotlib绘图库的pyplot快速绘图

matplotlib是Python最常用的绘图库,在结果或数据可视化中常用pyplot实现快速绘图,下面参考张若愚主编的Python科学计算(第2版)介绍pyplot绘图:


导入pyplot模块

import numpy as np
import matplotlib.pyplot as plt

定义函数

x = np.linespace(0,8,100)
y = np.sin(2*x)
z = np.cos(x**2)

调用figure()创建一个figure对象

plt.figure(figsize=(8,4))

其中,figize指定Figure对象的宽度和高度,单位为英寸。也可以利用dpi参数指定单位英寸像素数,默认为80。

绘制y的图像

plt.plot(x,y,label="$sin(2*x)$",color="blue",linewidth=2)

label: 指定曲线的标签,$符号用法与LaTeX相同,作用为显示为数学公式。
color: 指定曲线颜色,可以用英文单词或者’#’开头的6位十六进制数表示, 例如’#ff0000’表示红色,也可以用值在0到1范围之内的三个元素的元组来表示,例如(0.0,0.0,1.0)也表示蓝色。
linewidth:曲线宽度,可以简写为lw

绘制z的图像

plt.plot(x,z,'r--',label="$cos(x^2)$")

可以直接通过’r–’指定曲线的颜色和线型,与MTALB用法类似

plt.plot() 可用颜色:

character color 颜色
b blue 蓝色
g green 绿色
k black 黑色
c cyan 蓝绿色
m magenta 品红色
y yellow 黄色
w white 白色

plt.plot() 可用线型:

character color
'.' point marker
',' pixel marker
'o' circle marker
'v' triangle_down marker
'^' triangle_up marker
'<' triangle_left marker
'>' triangle_right marker
'1' tri_down marker
'2' tri_up marker
'3' tri_left marker
'4' tri_right marker
's' square marker
'p' pentagon marker
'*' star marker
'h' hexagon1 marker
'H' hexagon2 marker
'+' plus marker
'x' x marker
'D' diamond marker
'd' thin_diamond marker
'|' vline marker
'_' hline marker

设置Axes对象的属性

plt.xlabel("Time(s)")
plt.ylabel("Volt")
plt.title("PyPlot First Example")
plt.ylim(-1.2,1.2)
plt.legend()

xlabel、ylabel: 设置X、Y轴名称。
title: 设置子图名称。
xlim、ylim: 设置X、Y轴显示范围。
legend: 显示图示,即图中的label和样式的矩形区域

显示绘画窗口,保存图像

plt.show()

运行代码,输入图像如下:
这里写图片描述

保存图像

在Python中,画出的图像可右击另存为保存,对于单个画图,可以用savefig()保存。

plt.savefig('plot1.jpg',dpi=100)

savefig()第一个参数是保存路径,第二个参数为保存图像的分辨率。
注意:plt.show()之后将创建了一个新的空白的图片(坐标轴),plt.savefig() 不会保存原图像而会保存这个新生成的空白图片。解决方法a:在plt.show()之前保存;解决方法b:为plt命名,使用命名保存。

配置参数

一次绘制多个图像并配置参数

plt.figure(figsize=(5,6))
x = np.arange(0,-pi,pi,0.05)
lines = plt.plot(x, np.sin(x), x, np.cos(x), x, np.tan(x))
lines[0].set_alpha(0.6)
plt.setp(lines[1], color='r',linewidth=3.0)

输入图像为:
这里写图片描述
这里,通过调用Line2D对象的set_alpha(),修改其在对应曲线的透明度;通过调用Line2D对象的setp(),修改其在对应曲线的颜色和线宽。

获取对象属性

print(lines[0].get_linewidth())
print(plt.getp(lines[0], 'color'))
>>1.5
  1f77b4

获取对象的属性值的方法:get_*() 与plt.getp()。

猜你喜欢

转载自blog.csdn.net/mathlxj/article/details/81385707
今日推荐