首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python matplotlib轮廓图对数色标

Python matplotlib轮廓图对数色标
EN

Stack Overflow用户
提问于 2011-04-22 02:11:13
回答 2查看 32.6K关注 0票数 12

我对使用对数颜色缩放的等高线图有问题。我想手动指定级别。然而,Matplotlib以一种奇怪的方式绘制颜色条--标签没有放置好,并且只显示一种颜色。这个想法是基于http://adversus.110mb.com/?cat=8

外面有没有人能帮我?我使用最新的git-repository matplotlib版本,v1.1.0 (2011-04-21)

代码语言:javascript
复制
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.mlab import bivariate_normal
from matplotlib.colors import LogNorm
from matplotlib.backends.backend_pdf import PdfPages


delta = 0.5

x = np.arange(-3.0, 4.001, delta)
y = np.arange(-4.0, 3.001, delta)
X, Y = np.meshgrid(x, y)
Z = bivariate_normal(X, Y, 1.0, 1.0, 0.0, 0.0)

fig  = plt.figure()
ax   = fig.add_subplot(1,1,1)
#axim = ax.imshow(Z, norm = LogNorm())
axim    = ax.contourf(X,Y,Z,levels=[1e0,1e-1,1e-2,1e-3],cmap=plt.cm.jet,norm = LogNorm())
cb   = fig.colorbar(axim)

pp = PdfPages('fig.pdf')
pp.savefig()
pp.close()


plt.show()

非常感谢您的帮助!它工作完美,正如你所建议的.然而,我有另一个问题:为什么matplotlib不允许我选择对数模式下的水平线数:

代码语言:javascript
复制
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.mlab import bivariate_normal
from matplotlib.colors import LogNorm
from matplotlib.backends.backend_pdf import PdfPages


delta = 0.5

x = np.arange(-3.0, 4.001, delta)
y = np.arange(-4.0, 3.001, delta)
X, Y = np.meshgrid(x, y)
Z = bivariate_normal(X, Y, 1.0, 1.0, 0.0, 0.0)

fig  = plt.figure()
ax   = fig.add_subplot(1,1,1)
#axim = ax.imshow(Z, norm = LogNorm())
#axim   = ax.contourf(X,Y,Z,levels=[1e-3,1e-2,1e-1,1e0],cmap=plt.cm.jet,norm = LogNorm())
axim    = ax.contourf(X,Y,Z,20,cmap=plt.cm.jet,norm = LogNorm())
cb   = fig.colorbar(axim)

pp = PdfPages('fig.pdf')
pp.savefig()
pp.close()


plt.show()

http://i.stack.imgur.com/VeVFQ.png

这是我最初的问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-22 02:23:48

所以它很容易修复;您的级别顺序意味着最低级别在最后绘制,因此覆盖了所有内容!尝试:

代码语言:javascript
复制
axim    = ax.contourf(X,Y,Z,levels=[1e-3, 1e-2, 1e-1, 1e0],cmap=plt.cm.jet,norm = LogNorm())

相反,你应该会得到想要的结果。

票数 14
EN

Stack Overflow用户

发布于 2011-04-22 02:21:14

看起来levels期望不断增长的价值。尝试将它们更改为:levels=[1e-3, 1e-2, 1e-1, 1e0],看看这是否解决了您的问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5748076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档