如何避免pcolor()/imshow()和contour()覆盖之间的偏移?

2024-04-25 23:54:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我想显示一个伪彩色图像(例如由pcolor、pcolormesh或imshow制作的)覆盖轮廓线。看来这三个绘图函数可以是一个数据点。下面是一个例子:

import numpy
from matplotlib import pyplot,cm

f = pyplot.figure(figsize=(3,2))
ax = f.add_subplot(111)

data = numpy.ones((10,10))
data[5,5] = 2.0
data[0,:] = data[-1,:] = 0
data[:,0] = data[:,-1] = 0

X=numpy.linspace(-3,3,10)
Y=numpy.linspace(-2,2,10)

ax.imshow(data,interpolation='nearest',extent=(-3,3,-2,2),aspect='auto')
ax.contour(X,Y,data,cmap=cm.Greys)
f.subplots_adjust(bottom=.2)

pyplot.show()

这将产生(使用TkAgg后端GUI):

imshow() example

将imshow()方法替换为

^{pr2}$

产量:

pcolormesh() example

在这两种情况下,轮廓线都与底层图像不匹配。在


Tags: 数据函数importnumpy绘图datacmax
1条回答
网友
1楼 · 发布于 2024-04-25 23:54:27
import numpy
from matplotlib import pyplot,cm

f = pyplot.figure()
ax = f.add_subplot(111)

data = numpy.ones((10,10))
data[5,5] = 2.0
data[0,:] = data[-1,:] = 0
data[:,0] = data[:,-1] = 0

ax.imshow(data, interpolation='nearest')
ax.contour(data,levels=[0.0,0.5,1.0,1.5,2.5],cmap=cm.Greys)
ax.invert_yaxis()
pyplot.show()

enter image description here

相关问题 更多 >