使用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() 可用颜色:

charactercolor颜色
bblue蓝色
ggreen绿色
kblack黑色
ccyan蓝绿色
mmagenta品红色
yyellow黄色
wwhite白色

plt.plot() 可用线型:

charactercolor
'.'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()。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值