相关疑难解决方法(0)

Python matplotlib等高线图对数色标

我使用对数颜色缩放对轮廓图有问题.我想手动指定水平.然而,Matplotlib以一种奇怪的方式绘制颜色条 - 标签放置不好,只出现一种颜色.这个想法基于 http://adversus.110mb.com/?cat=8

那里有人,谁可以帮助我?我使用最新的git-repository matplotlib版本,v1.1.0(2011-04-21)

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()
Run Code Online (Sandbox Code Playgroud)

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

import …
Run Code Online (Sandbox Code Playgroud)

python logging plot matplotlib contour

10
推荐指数
1
解决办法
3万
查看次数

matplotlib 带上标的刻度轴表示法

我想绘制一些频率图。我想要一个带有上标符号的 x 轴,如下所示。此外,我需要带有垂直注释的垂直线,将千赫兹和兆赫兹分开。

import numpy as np
import matplotlib.pyplot as plt
band = np.linspace(0,10**12,100)
y = band

plt.plot(band,y)
plt.xlabel('Frequencies')

plt.vlines(10**3, min(y), max(y),colors = 'black', label = 'kilo Hz')
plt.vlines(10**6, min(y), max(y),colors = 'black', label = 'mega Hz')
plt.legend()
plt.show()
Run Code Online (Sandbox Code Playgroud)

我尝试使用股票但不知道如何设置它。我尝试遵循一些示例,但出现了错误,例如AttributeError: 'Figure' object has no attribute 'ticklabel_format' 已经花费了大量时间,并且不知道如何继续。

一般来说,我需要以类似的方式格式化 x 轴,但plt.xscale('log')我想保持线性比例。

python matplotlib

3
推荐指数
1
解决办法
3343
查看次数

标签 统计

matplotlib ×2

python ×2

contour ×1

logging ×1

plot ×1