gpt4 book ai didi

python - matplotlib 等高线图与 lognorm - colorbar 级别

转载 作者:太空狗 更新时间:2023-10-29 22:31:00 24 4
gpt4 key购买 nike

我正在尝试制作具有定义水平和对数范数的等高线图。下面是一个例子:

import matplotlib.pyplot as plt
import numpy as np
from matplotlib.colors import LogNorm
delta = 0.025

x = y = np.arange(0, 3.01, delta)
X, Y = np.meshgrid(x, y)
Z1 = plt.mlab.bivariate_normal(X, Y, 1.0, 1.0, 0.0, 0.0)
Z2 = plt.mlab.bivariate_normal(X, Y, 1.5, 0.5, 1, 1)
Z = 10 * (Z1* Z2)

fig=plt.figure()
ax1 = fig.add_subplot(111)
lvls = np.logspace(-4,0,20)
CF = ax1.contourf(X,Y,Z,
norm = LogNorm(),
levels = lvls
)
CS = ax1.contour(X,Y,Z,
norm = LogNorm(),
colors = 'k',
levels = lvls
)
cbar = plt.colorbar(CF, ticks=lvls, format='%.4f')
plt.show()

enter image description here我的问题是:
级别应以以下格式编写:'1x10^-4', '1.6x10^-4', ... 我该怎么做,而不手动指定每个级别?

我在 Windows 7 上使用 python 2.7.3 和 matplotlib 1.1.1。

最佳答案

来自 here我找到了一种似乎符合您的问题的方法:

from matplotlib.ticker import LogFormatter
l_f = LogFormatter(10, labelOnlyBase=False)
cbar = plt.colorbar(CF, ticks=lvls, format=l_f)

这将给出:

enter image description here

请注意刻度之间的间距确实是对数刻度...

关于python - matplotlib 等高线图与 lognorm - colorbar 级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17951672/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com