带有lognorm的matplotlib等高线图-颜色栏级别

用户名

我正在尝试绘制具有定义级别和对数范数的等高线图。下面是一个示例:

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()

在此处输入图片说明我的问题是:
这些级别应以以下格式编写:'1x10 ^ -4','1.6x10 ^ -4',...如何做到这一点,而无需手动指定每个级别?

我在Windows 7上将python 2.7.3与matplotlib 1.1.1一起使用。

索洛GP卡斯特罗

这里我发现了一种似乎适合您的问题的方法:

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

这将给:

在此处输入图片说明

注意刻度线之间的间隔确实是对数刻度...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Matplotlib滑块更新等高线图级别

来自分类Dev

Matplotlib:如何为等高线图调整颜色栏中的线宽?

来自分类Dev

Matplotlib等高线图上颜色栏的Python最小和最大范围

来自分类Dev

等高线之间填充颜色不变的等高线图

来自分类Dev

ggplot2等高线图中的自定义级别?

来自分类Dev

从mgcv中的vis.gam更改等高线图中的颜色

来自分类Dev

填充matplotlib等高线图

来自分类Dev

填充matplotlib等高线图

来自分类Dev

等高线图例-Matplotlib

来自分类Dev

坏等高线图

来自分类Dev

条件等高线图

来自分类Dev

给定范围内的matplotlib等高线图

来自分类Dev

Python Matplotlib等高线图中的非线性缩放

来自分类Dev

在给定范围内的matplotlib等高线图

来自分类Dev

从matplotlib等高线图中提取特定路径

来自分类Dev

在 matplotlib 等高线图中设置轴比例

来自分类Dev

Python 中 matplotlib 等高线图的 ValueError

来自分类Dev

同一图中有多个等高线图

来自分类Dev

Matlab:用等高线填充等高线图

来自分类Dev

Matlab:用等高线填充等高线图

来自分类Dev

等高线图x标签

来自分类Dev

多元高斯的等高线图

来自分类Dev

从数据框创建等高线图

来自分类Dev

八度等高线图

来自分类Dev

等高线图x标记

来自分类Dev

使用函数绘制等高线图

来自分类Dev

平滑边缘等高线图

来自分类Dev

散景中的等高线图

来自分类Dev

在matplotlib等高线图中手动设置标签错误