提示:以下matplotlib.pyplot中的函数来自官方库,下面翻译和示例仅供参考。
文章目录
关于matplotlib的pyplot包的函数集
matplotlib.pyplot
is a state-based interface to matplotlib. It provides a MATLAB-like way of plotting.
matplotlib.pyplot是命令行式函数的集合,每一个函数都对图像作了修改。
一、pyplot函数集
matplotlib.pyplot是命令行式函数的集合,每一个函数都对图像作了修改【比如创建图形,在图像上创建画图区域,在画图区域上画线,在线上标注等】
# function
get_plot_commands() # 获取所有绘图命令的排序列表。
1、pyplot—创建画布、设定绘图区域、颜色系
1)创建
Figure([num,figsize,dpi,facecolor,...]) # 创建一个新图形,或激活一个现有图形。
fignum_exists(num) # 返回具有给定id的图形是否存在。
figlegend(* args,** kwargs) # 在图上放置一个图例。
figimage(X [,xo,yo,alpha,norm,cmap,...]) # 向图中添加未重采样的图像。
savefig(* args,** kwargs) # 保存当前图形。
close([fig]) # 关闭图形窗口。
2)画图区域
new_figure_manager(num,* args,** kwargs) # 创建一个新的图形管理器实例。
matshow(A [,fignum]) # 在新图形窗口中将数组显示为矩阵。
margins(* margins [,x,y,ight]) # 设置或获取自动缩放的边界。
subplot(* args,** kwargs) # 在当前图形上添加一个子图。
subplot2grid(shape,loc [,rowspan,colspan,图]) # 在常规网格内的特定位置创建一个子图。
subplot_mosaic(layout,* [,subplot_kw,...]) # 基于ASCII艺术作品或嵌套列表构建轴的布局。
subplot_tool([targetfig]) # 启动图形的子图工具窗口。
subplots([nrows,ncols,sharex,sharey,...]) # 创建一个图形和一组子图。
subplots_adjust([[left,bottom,right,top,...]) # 调整子图布局参数。
suptitle(t,** kwargs) # 在图中添加居中标题。
switch_backend(newbackend) # 关闭所有打开的图形并设置Matplotlib后端。
3) 颜色系
set_cmap(cmap) # 设置默认的颜色图,并将其应用于当前图像(如果有)。
clim([vmin,vmax]) # 设置当前图像的颜色限制。
autumn() # 将颜色表设置为“autumn”。
bone() # 将颜色图设置为“bone”。
copper() # 将颜色图设置为“copper”。
cool() # 将颜色表设置为“ cool”。
flag() #将颜色图设置为“flag”。
gray() # 将颜色图设置为“灰色”。
hot() # 将颜色表设置为“热”。
hsv() # 将颜色表设置为“ hsv”。
inferno() # 将颜色映射设置为“ inferno”。
jet() # 将颜色表设置为“ jet”。
magma() # 将颜色表设置为“ magma”。
nipy_spectral() # 将颜色映射设置为“ nipy_spectral”。
pink() # 将颜色图设置为“粉红色”。
plasma() # 将颜色图设置为“ plasma”。
prism() # Set the colormap to "prism".设置颜色图为“棱镜”。
summer() # 将颜色表设置为“暖色调”。
spring() # 将颜色表设置为“ spring”。
viridis() # 将颜色图设置为“ viridis”。
winter() # 将颜色表设置为“冷色”。
2、pyplot-- 坐标系、轴、标注
# 标题
title(label [,fontdict,loc,pad,y]) # 设置轴的标题。
table([cellText,cellColours,cellLoc,...]) # 将表添加到轴。
# x坐标
xlabel( xlabel [,fontdict,labelpad,loc]) # 设置x轴的标签。
xlim( * args,** kwargs) # 获取或设置当前轴的x极限。
xscale( value,** kwargs) # 设置x轴比例。
xticks( [ticks,labels]) # 获取或设置x轴的当前刻度位置和标签。
# y坐标
ylabel( ylabel [,fontdict,labelpad,loc]) # 设置y轴的标签。
ylim( * args,** kwargs) # 获取或设置当前轴的y限制。
yscale( value,** kwargs) # 设置y轴比例。
yticks( [ticks,labels]) # 获取或设置y轴的当前刻度位置和标签。
# 标注
annotate(text, xy, *args, **kwargs) # 用文本text注释点xy。
figtext(x,y,s [,fontdict]) # 在图上添加文本。
text(x,y,s [,fontdict]) # 将文本添加到轴。
axes([arg]) # 在当前图形中添加一个坐标轴,并将其作为当前坐标轴。
axhline([y,xmin,xmax]) # 在轴上添加一条水平线。
axvline([x,ymin,ymax]) # 在轴上添加一条垂直线。
axline(xy1 [,xy2,slope]) # 添加无限长的直线。slope:坡度
# 等高线
clabel(CS [,level]) # 标注等高线图
axhspan(ymin,ymax [,xmin,xmax]) # 在轴上添加水平跨度(矩形)。
axvspan(xmin,xmax [,ymin,ymax]) # 在轴上添加垂直跨度(矩形)。
axis(* args [,emit]) # 获取或设置某些轴属性的便捷方法。
cla() # Clear the current axes,清除当前轴。
gca(** kwargs) # 获取当前轴,必要时创建一个。
delaxes([ax]) # 从图中删除一个轴(默认为当前轴)。
arrow(x, y, dx, dy, **kwargs) # 向轴添加箭头。
autoscale([enable, axis, tight]) # 将轴视图自动缩放为数据(切换)。
legend(* args,** kwargs) # 在轴上放置一个图例。
locator_params([axis,ight]) # 控制主要刻度线定位器的行为。
minorticks_off() # 从轴上删除较小的滴答声。
minorticks_on() # 在轴上显示次刻度。
semilogx(* args,** kwargs) # 使用x轴上的对数比例绘制图。
semilogy(* args,** kwargs) # 使用y轴上的对数比例绘制图。
thetagrids([angles,labels,fmt]) # 获取或设置当前极坐标上的theta网格线。
tick_params([axis]) # 更改刻度线,刻度线标签和网格线的外观。
ticklabel_format(* [,axis,style,...]) # 配置默认情况下用于线性轴的ScalarFormatter。
twinx([ax]) # 制作并返回共享x轴的第二个轴。
twiny([ax]) # 制作并返回共享y轴的第二个轴。
sca(ax) # 将当前轴设置为ax,将当前图形设置为ax的父级。
3、pyplot–在画图区域绘图、展示、保存
1)绘线
plot(* args [,scalex,scaley,data]) # 将y与x作图,作为线条和/或标记。
plot_date(x,y [,fmt,tz,xdate,ydate,data]) # 绘制包含日期的数据。
# 相关
acorr(x, *[, data]) # 绘制x的自相关。
xcorr( x,y [,normed,detrend,usevlines,...]) # 绘制x和y之间的互相关。
cohere(x,y [,NFFT,Fs,Fc,detrend,...]) # 绘制x和y之间的相干性。detrend:下降趋势
eventplot(positions [,orientation,...]) # 在给定位置绘制相同的平行线。
hlines(y,xmin,xmax [,colors,linestyles,...]) # 在从xmin到xmax的每个y上绘制水平线。
vlines( x,ymin,ymax [,color,linestyles,...]) # 绘制垂直线。
2)绘图
# 条形图
bar(x,height [,width,bottom,align,data]) # 绘制条形图。
barh(y,width [,height,left,align]) # 绘制水平条形图。
barbs(* args [,data]) # 绘制barbs的2D。
colorbar([mappable,cax,ax]) # 将色条添加到绘图中。
errorbar(x,y [,yerr,xerr,fmt,ecolor,...]) # 将y对x绘制为带有错误栏的线和/或标记。
# 直方图
hist(x [,bins,range,density,weights,...]) # 绘制直方图。
hist2d(x,y [,bins,range,density,...]) # 绘制2D直方图。
# 饼图
pie(x[, explode, labels, colors, autopct, ...]) # 绘制饼图。
# 散点图
scatter(x,y [,s,c,标记,cmap,范数,...]) # 绘制散点图。
# 极坐标图
polar(* args,** kwargs) # 绘制一个极坐标图。
rgrids([半径,标签,角度,fmt]) # 获取或设置当前极坐标图上的径向网格线。
# 堆叠区域图
stackplot(x,* args [,label,color,...]) # 绘制堆叠区域图。
# stem图
stem(* args [,linefmt,markerfmt,basefmt,...]) # 创建茎图。
# 阶梯图
step(x,y,* args [,where,data]) # 绘制阶梯图。
box([on]) # 打开或关闭当前轴上的axes box。
boxplot(x [,notch,sym,vert,whis,...]) # 制作一个盒子和晶须图。
broken_barh(xranges,yrange,* [,data]) # 绘制矩形的水平序列。
violinplot( dataset [,position,vert,...]) # 绘制小提琴图。
pcolor(* args [,shading,alpha,norm,cmap,...]) # 创建具有非规则矩形网格的伪彩色图。
pcolormesh(* args [,alpha,norm,cmap,vmin,...]) # 创建具有非规则矩形网格的伪彩色图。
streamplot(x,y,u,v [,density,linewidth,...]) # 绘制矢量流的流线。
specgram(x [,NFFT,Fs,Fc,detrend,window,...]) # 绘制频谱图。
phase_spectrum(x [,Fs,Fc,window,pad_to,...]) # 绘制相位谱。
psd(x[, NFFT, Fs, Fc, detrend, window, ...]) # 绘制功率谱密度。
spy(Z [,precision,marker,markersize,...]) # 绘制2D数组的稀疏模式。
quiver(* args [,data]) # 绘制箭头的2D字段。
loglog(* args,** kwargs) # 绘制一个在x和y轴上均具有对数缩放比例的图。
hexbin(x,y [,C,gridsize,bins,xscale,...]) # 绘制点x,y的2D六角形装箱图。
# 光谱
angle_spectrum(x[, Fs, Fc, window, pad_to, ...]) # 绘制角度光谱。
csd(x,y [,NFFT,Fs,Fc,detrend,window,...]) # 绘制交叉光谱密度。
itude_spectrum(x [,Fs,Fc,window,...]) # 绘制幅度谱。
tricontour(* args,** kwargs) # 在非结构化三角形网格上绘制轮廓线。
tricontourf(* args,** kwargs) # 在非结构化三角形网格上绘制轮廓区域。
tripcolor(* args [,alpha,norm,cmap,vmin,...]) # 创建非结构化三角形网格的伪彩色图。
triplot(* args,** kwargs) # 绘制非结构化的三角形网格作为线和/或标记。
3)当前图操作
# 显示和保存图形
show(* [,block]) # 显示所有打开的图形。
pause(interval) #运行GUI事件循环间隔秒。Run the GUI event loop for interval seconds.动画
savefig(* args,** kwargs) # 保存当前图形。
draw() # 重绘当前图形。
gcf() # 获取当前图形。
clf() # 清除当前图形。
sci(im) # 设置当前图像。
gci() # 获取当前的可着色artist。
contour(* args [,data]) # 绘制轮廓。
contourf(* args [,data]) # 绘制轮廓。
grid([b,which,axis]) # 配置网格线。
fill(* args [,data]) # 绘制填充的多边形。
fill_between(x,y1 [,y2,where,...]) # 填充两条水平曲线之间的区域。
fill_betweenx(y,x1 [,x2,where,step,...]) # 填充两条垂直曲线之间的区域。
ight_layout(* [,pad,h_pad,w_pad,rect]) # 调整子图之间及其周围的填充。
findobj([o,match,include_self]) # 查找artist对象。
get(obj,* args,** kwargs) # 返回对象属性的值,或打印所有属性。
get_current_fig_manager() # 返回当前图形的图形管理器。
get_figlabels() # 返回现有图形标签的列表。
get_fignums() # 返回现有图形编号的列表。
getp(obj,* args,** kwargs) # 返回对象属性的值,或打印所有属性。
setp(obj,* args,** kwargs) # 在artist对象上设置属性。
quiverkey(Q,X,Y,U,label,** kw) # 将一个键添加到颤动图中。
4)读图和保存图像
imread(fname [,format]) # 从文件中读取图像到数组中。
imsave(fname,arr,** kwargs) # 将数组另存为图像文件。
imshow(X [,cmap,norm,Aspect,...]) # 将数据显示为图像,即在2D常规栅格上。
4、pyplot的其他功能函数
draw_if_interactive()
ginput([n,timeout,show_clicks,mouse_add,...]) # 阻止与图进行交互的调用。
ioff() # 关闭交互模式。
ion() # 启用交互模式。
isinteractive() # 返回pyplot是否处于“交互模式”。
waitforbuttonpress( [timeout]) # 阻止与该图进行交互的调用。
xkcd( [scale,length,randomness]) # 打开xkcd草图样式绘制模式。仅在调用此函数后才对绘制的内容有效。
uninstall_repl_displayhook() # 卸载matplotlib显示挂钩。
install_repl_displayhook() # 安装repl显示钩子,以便在将控制权返回给repl时自动重画任何陈旧的图形。
rc(group,** kwargs) # 设置当前的rcParams。
rc_context([rc,fname]) # 返回一个用于临时更改rcParams的上下文管理器。
rcdefaults() # 从Matplotlib的内部默认样式恢复rcParams。
connect(cid) # 断开ID为cid的回调。
connect(s,func) # 将函数func绑定到事件s。
二、示例
0. 绘图基本流程
作图基本流程:导入必要的包:开始创建画布>添加画图区域(或者创建子图)>标注(标题、x、y轴名称,刻度)>绘图(根据数据或函数)>添加图例>完成绘制>保存(可选)>显示。
1. 绘制图形
# 作图基本流程:导入必要的包:开始创建画布>添加画图区域(或者创建子图)>标注(标题、x、y轴名称,刻度)>绘图(根据数据或函数)>添加图例>完成绘制>保存(可选)>显示。
import matplotlib.pyplot as plt
import numpy as np
# 创建画布对象
fig1 = plt.figure(num=1, figsize=(4, 4))
# 给画布对象显示增加绘图区域
ax = fig1.add_subplot(111) # 绘图区域也是一个对象
ax.plot([1, 2, 3, 4, 5], [1, 4, 9, 16, 25]) # 绘图区域绘图
plt.savefig("paowuxian.png")
plt.show()
2. 绘制正弦频率和幅度可调节图像
# 正弦频率和幅度可调节图像
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider, Button
# The parametrized function to be plotted
def f(t, amplitude, frequency):
return amplitude * np.sin(2 * np.pi * frequency * t)
t = np.linspace(0, 1, 1000)
# Define initial parameters
init_amplitude = 5
init_frequency = 3
# Create the figure and the line that we will manipulate
fig, ax = plt.subplots()
line, = plt.plot(t, f(t, init_amplitude, init_frequency), lw=2)
ax.set_xlabel('Time [s]')
axcolor = 'lightgoldenrodyellow'
ax.margins(x=0)
# adjust the main plot to make room for the sliders
plt.subplots_adjust(left=0.25, bottom=0.25)
# Make a horizontal slider to control the frequency.
axfreq = plt.axes([0.25, 0.1, 0.65, 0.03], facecolor=axcolor)
freq_slider = Slider(
ax=axfreq,
label='Frequency [Hz]',
valmin=0.1,
valmax=30,
valinit=init_frequency,
)
# Make a vertically oriented slider to control the amplitude
axamp = plt.axes([0.1, 0.25, 0.0225, 0.63], facecolor=axcolor)
amp_slider = Slider(
ax=axamp,
label="Amplitude",
valmin=0,
valmax=10,
valinit=init_amplitude,
orientation="vertical"
)
# The function to be called anytime a slider's value changes
def update(val):
line.set_ydata(f(t, amp_slider.val, freq_slider.val))
fig.canvas.draw_idle()
# register the update function with each slider
freq_slider.on_changed(update)
amp_slider.on_changed(update)
# Create a `matplotlib.widgets.Button` to reset the sliders to initial values.
resetax = plt.axes([0.8, 0.025, 0.1, 0.04])
button = Button(resetax, 'Reset', color=axcolor, hovercolor='0.975')
def reset(event):
freq_slider.reset()
amp_slider.reset()
button.on_clicked(reset)
plt.show()
三、参考资料
- matplotlib库- - -widgets,slider+button