matplotlib.pyplot contourf函数在绘制常规数据时引入孔或间隙

时间:2013-09-19 14:49:07

标签: python matplotlib plot ipython

我正在尝试使用matplotlib.pyplot中的contourf函数绘制3D数据集。所有这些都是在iPython笔记本中运行的。数据的表面图看起来很好,但是contourf图中有一个大洞。

我正在使用的代码的简化版本是:

import numpy as np # import modules
import scipy.io as spio
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure(figsize=(12,5))
zMin = 1.2
data = spio.loadmat('./OD_SurfMatFiles/surf_k2_c3.mat')
X = data['xVal']
Y = data['yVal']
Z = data['zVal']
plotX, plotY = numpy.meshgrid(X, Y)
ax = fig.add_subplot(1,2,1, projection='3d')
colourLevels = [0.0, 0.4, 0.8, 1.2, 1.6, 2.0, 2.4];
cset = ax.contourf(plotX, plotY, Z, colourLevels, zdir='z',offset=zMin, cmap=cm.autumn)
CB = plt.colorbar(cset, shrink=0.5, extend='both')

结果可以在这里看到:

http://nbviewer.ipython.org/url/www.alexbaldwin.org.uk/pynotebooks/OD%2520Appendix%2520HM%2520Noise%2520Aperture%2520SurfBug%2520MWE%25202.ipynb

正在绘制的数据从MATLAB中导出:

xVal =

       384   416   448   480   512   544   576   608   640   672

yVal =

    18    19    20    21    22

zVal =

  Columns 1 through 9

    1.1717    1.1421    1.1358    1.2124    1.1721    1.1840    1.1809    1.1399    1.1708
    1.1286    1.2183    1.1654    1.1675    1.1810    1.1745    1.2100    1.2284    1.2096
    1.2132    1.3057    1.2616    1.1742    1.2639    1.2316    1.2039    1.2277    1.2367
    1.2363    1.1987    1.2367    1.2171    1.2718    1.2040    1.2462    1.1802    1.2218
    1.2230    1.2601    1.2411    1.2436    1.2635    1.2197    1.2300    1.2266    1.2368

  Column 10

    1.2357
    1.2039
    1.3010
    1.2273
    1.2336

我最初使用matplotlib 1.2遇到了这个问题。我认为他们可能已在以后的版本中修复它,但即使使用u'1.4.x'它仍然会发生。

0 个答案:

没有答案