matplotlib轮廓图中的对称对数色阶

2023-12-07

如何创建具有符号对数(对称对数)比例的等高线图。即显示负值和正值的对数刻度。

一种可能性是解决这个例子:

http://matplotlib.org/examples/pylab_examples/contourf_log.html

这给出了对数刻度的配方:

from matplotlib import pyplot, ticker
cs = pyplot.contourf(X, Y, z, locator=ticker.LogLocator())

但是,这不允许负值。有一个ticker.SymmetricalLogLocator(),这可能是解决方案,但似乎没有太多文档。

EDIT:

为了澄清(因为在对数刻度上请求负值可能听起来很荒谬),我想要的是与 matplotlib 轴上提供的“symlog”刻度相同。下面的图(取自另一个堆栈交换帖子),在 x 轴上显示符号日志。它是一个“对数”刻度,但以观众清楚的方式处理负值。

Symlog example

我想要相同类型的缩放,但对于轮廓或轮廓上的色标。


我偶然发现了这个线程,试图做同样的事情,即在正方向和负方向上绘制大范围的值。此外,我希望拥有像 imshow 一样精细的粒度。

事实证明,您可以使用“ticker.MaxNLocator(nbins)”来实现,其中 nbins 可以设置得很高以获得精细的粒度,例如将 nbins 设置为 100。

我还想要一个漂亮的 Latex 风格的股票代码格式,不久前我在 StackOverflow 上找到了一个解决方案。

我将在此处发布该代码片段,该代码片段来自它所属的类之一,以便任何可能想要的人都可以了解其工作原理的基本概念。我使用此解决方案生成多个图,如下图所示。

import matplotlib.pyplot as plt
import matplotlib.ticker as ticker

# function for nice Latex style tick formatting
# copied from
# http://stackoverflow.com/questions/25983218/
# scientific-notation-colorbar-in-matplotlib
# output formating for colorbar in 2D plots
def fmt(x, pos):
  a, b = '{:.2e}'.format(x).split('e')
  b = int(b)
  return r'${} \times 10^{{{}}}$'.format(a, b)

# A confourf function I use inside one of my classes
# mainly interesting are the "plot" and "cbar" lines
def Make2DSubPlot(self, posIdent, timeIdx,typeIdx):
  plt.subplot(posIdent)
  y = self.radPos
  x = self.axPos
  z = self.fieldList[timeIdx][typeIdx]
  plot = plt.contourf(x, y, z, locator=ticker.MaxNLocator(100), \
          aspect='auto',origin='lower')
  cbar = plt.colorbar(plot, orientation='vertical', \
          format=ticker.FuncFormatter(fmt))
  cbar.ax.set_ylabel(self.labelList[typeIdx])
  plt.xlabel(self.labelList[self.iax])
  plt.ylabel(self.labelList[self.iax])

enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

matplotlib轮廓图中的对称对数色阶 的相关文章

  • Flask 会话变量

    我正在用 Flask 编写一个小型网络应用程序 当两个用户 在同一网络下 尝试使用应用程序时 我遇到会话变量问题 这是代码 import os from flask import Flask request render template
  • 如何使用Conda下载python包并随后离线安装?

    我知道通过 pip 我可以使用以下命令下载 Python 包 但 pip install 破坏了我的内部包依赖关系 当我做 pip download
  • PyUSB 1.0:NotImplementedError:此平台不支持或未实现操作

    我刚刚开始使用 pyusb 基本上我正在玩示例代码here https github com walac pyusb blob master docs tutorial rst 我使用的是 Windows 7 64 位 并从以下地址下载 z
  • 如何替换 pandas 数据框列中的重音符号

    我有一个数据框dataSwiss其中包含瑞士城市的信息 我想用普通字母替换带有重音符号的字母 这就是我正在做的 dataSwiss Municipality dataSwiss Municipality str encode utf 8 d
  • 根据列值突出显示数据框中的行?

    假设我有这样的数据框 col1 col2 col3 col4 0 A A 1 pass 2 1 A A 2 pass 4 2 A A 1 fail 4 3 A A 1 fail 5 4 A A 1 pass 3 5 A A 2 fail 2
  • 是否可以忽略一行的pyright检查?

    我需要忽略一行的pyright 检查 有什么特别的评论吗 def create slog group SLogGroup data Optional dict None SLog insert one SLog group group da
  • 基于代理的模拟:性能问题:Python vs NetLogo & Repast

    我正在 Python 3 中复制一小段 Sugarscape 代理模拟模型 我发现我的代码的性能比 NetLogo 慢约 3 倍 这可能是我的代码的问题 还是Python的固有限制 显然 这只是代码的一个片段 但 Python 却花费了三分
  • Python 函数可以从作用域之外赋予新属性吗?

    我不知道你可以这样做 def tom print tom s locals locals def dick z print z name z name z guest Harry print z guest z guest print di
  • 如何在Python中获取葡萄牙语字符?

    我正在研究葡萄牙语 角色看起来很奇怪 我怎样才能解决这个问题 代码 import feedparser import random Vou definir os feeds feeds conf feedurl http pplware s
  • 如何在ipywidget按钮中显示全文?

    我正在创建一个ipywidget带有一些文本的按钮 但按钮中未显示全文 我使用的代码如下 import ipywidgets as widgets from IPython display import display button wid
  • Jupyter Notebook 内核一直很忙

    我已经安装了 anaconda 并且 python 在 Spyder IPython 等中工作正常 但是我无法运行 python 笔记本 内核被创建 它也连接 但它始终显示黑圈忙碌符号 防火墙或防病毒软件没有问题 我尝试过禁用两者 我也无法
  • Fabric env.roledefs 未按预期运行

    On the 面料网站 http docs fabfile org en 1 10 usage execution html 给出这个例子 from fabric api import env env roledefs web hosts
  • 对年龄列进行分组/分类

    我有一个数据框说df有一个柱子 Ages gt gt gt df Age 0 22 1 38 2 26 3 35 4 35 5 1 6 54 我想对这个年龄段进行分组并创建一个像这样的新专栏 If age gt 0 age lt 2 the
  • 如何在 Python 中追加到 JSON 文件?

    我有一个 JSON 文件 其中包含 67790 1 kwh 319 4 现在我创建一个字典a dict我需要将其附加到 JSON 文件中 我尝试了这段代码 with open DATA FILENAME a as f json obj js
  • 解释 Python 中的数字范围

    在 Pylons Web 应用程序中 我需要获取一个字符串 例如 关于如何做到这一点有什么建议吗 我是 Python 新手 我还没有找到任何可以帮助解决此类问题的东西 该列表将是 1 2 3 45 46 48 49 50 51 77 使用
  • 如何计算 pandas 数据帧上的连续有序值

    我试图从给定的数据帧中获取连续 0 值的最大计数 其中包含来自 pandas 数据帧的 id date value 列 如下所示 id date value 354 2019 03 01 0 354 2019 03 02 0 354 201
  • 使用 Python 的 matplotlib 选择在屏幕上显示哪些图形以及将哪些图形保存到文件中

    我想用Python创建不同的图形matplotlib pyplot 然后 我想将其中一些保存到文件中 而另一些则应使用show 命令 然而 show 显示all创建的数字 我可以通过调用来避免这种情况close 创建我不想在屏幕上显示的绘图
  • 从列表指向字典变量

    假设你有一个清单 a 3 4 1 我想用这些信息来指向字典 b 3 4 1 现在 我需要的是一个常规 看到该值后 在 b 的位置内读写一个值 我不喜欢复制变量 我想直接改变变量b的内容 假设b是一个嵌套字典 你可以这样做 reduce di
  • Python 类继承 - 诡异的动作

    我观察到类继承有一个奇怪的效果 对于我正在处理的项目 我正在创建一个类来充当另一个模块的类的包装器 我正在使用第 3 方 aeidon 模块 用于操作字幕文件 但问题可能不太具体 以下是您通常如何使用该模块 project aeidon P
  • 如何将输入读取为数字?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 Why are x and y下面的代码中使用字符串而不是整数 注意 在Python 2

随机推荐

  • 将 OnClick 事件添加到 ASP.NET 控件

    我想创建OnClick为我的活动panel 到目前为止 大多数谷歌结果看起来或多或少是这样的 将 onclick 事件添加到 aspnet 标签 有什么方法可以从 javascript 或面板属性调用代码隐藏函数吗 因为我想将用户重定向到新
  • 如何启动 PHP 类并在多个文件中使用它?

    我现在很困惑 在我关于这个问题的上一篇文章中 答案是使用单例来确保对象仅启动一次 但我遇到了相反的问题 如果我有一个名为索引 php然后我将这些文件包含进去 类1 php 类2 php 类3 php 类4 php In 索引 php我会有
  • 具有多个条件的 COUNTIF

    您能告诉我如何在多个条件下使用 COUNTIF 吗 我的提案 左 显示了一项标准 不同区域 的公式 但是 我有兴趣计算每个不同月份的不同区域 两个标准 右侧 期望的结果 您可以使用COUNTIFS instead 1 COUNTIFS A
  • 为什么无穷大在 Windows 10 控制台中打印为“8”?

    我正在测试除法返回的内容 包括零 即0 1 1 0 and 0 0 为此 我使用了类似于以下内容的内容 Console WriteLine 1d 0d 然而这段代码打印8 not Infinity或其他一些字符串常量 例如PositiveI
  • PropertyGrid - 根据另一个属性值更改下拉属性编辑器的项目

    我正在尝试在自定义组件中实现下拉属性 并且我使用了这个答案 and 这个答案作为指导 到目前为止 我设法让它工作 并在下拉列表中使用预定义的项目 但我仍然需要弄清楚如何更改下拉列表中的项目 这是我到目前为止的代码 从上面提到的链接构建 Ty
  • 静态javascript未在jade中呈现(使用express/node.js)

    我希望你一切都好 我突然无法在 jade 模板中渲染任何外部 javascript 为了弄清楚事情的真相 我将其精简到最低限度 节点0 6 11 Express 2 5 8 jade 0 20 3 app js var express re
  • 协调两个对象集合

    我有一个表单 用户可以在其中使用 DataGrid 修改对象集合 打开表单时 我会创建原始集合的深层副本 如果按下 取消 按钮 我只会丢弃该副本 问题是 当按下 确定 按钮时 我必须协调可能的更改 修改现有对象的属性 新对象添加到集合中的任
  • Log4j JDK 日志适配器:在启动过程后期应用 LogManager 系统属性

    我有一个运行 Web 应用程序的 WebSphere 应用程序服务器 我从 Eclipse 启动服务器 该应用程序中的主要日志记录框架是 log4j2 但也有一些使用 java util logging 的第三方库 我想将这些日志重定向到
  • 实时网络编程:它是如何工作的?

    作为一名 Web 开发人员 我借助 Redis 或 Pusher 等第三方服务开发了聊天服务和其他一些实时协作服务 它们提供了简单的 API 我可以使用发布 订阅模型来实现通过网络服务器的双向通信 我现在想实现一个简单的推送通知 而不使用任
  • 阻止选择下拉列表打开,但允许触发其事件

    有什么方法可以捕获 html select 事件 并阻止 html select 下拉列表打开吗 禁用 html select 被排除 因为事件也将被禁用 我怀疑这实际上会阻止它打开 但它将确保 DropDown 始终保持相同的值
  • 如何根据其中一个成员的值对结构数组进行排序,并根据另一个成员打破联系?

    假设有一个结构 struct x int a b c 结构体数组包含arr 0 4 2 5 arr 1 6 3 1 arr 2 4 1 8 那么我们如何根据成员 a 的值按升序对这个数组进行排序 将根据成员 b 的值打破平局 所以排序后的数
  • ReaderT 设计模式:参数化环境

    我基于以下内容构建了一个项目ReaderT设计模式 我选择使用简单的处理程序注入作为函数参数 而不是使用类型类方法进行依赖项注入 这部分工作得很好 因为我们能够静态构建依赖树并动态定义环境 环境可能包含配置以及日志记录效果 String g
  • 您可以在迭代 std::list 时从其中删除元素吗?

    我的代码如下所示 for std list
  • 是否有 Visual Studio 宏可以在类中每个方法的开头设置断点?

    是否有 Visual Studio 宏 版本 2008 或 2010 可以在类中每个方法的开头设置断点 我已经看到了参考文献的提示 但我无法挖掘出真正的参考文献 名为的 Visual Studio 扩展OzCode确实具有在类的所有成员上设
  • 检测外部进程是否是交互式的并且有任何可见的 UI

    我似乎无法找到一种方法来确定是否Process有一个用户界面 例如一个用户可见的窗口 Environment UserInteractive对于外部进程没有用处 process MainWindowHandle IntPtr Zero在我的
  • 在 swift 中表达具有动态范围的 for 循环

    或者我如何在 for 循环条件中使用索引 嘿人们 由于我们在 swift 3 中没有 c 风格的 for 循环 我似乎找不到一种方法来表达更复杂的 for 循环 所以也许你可以帮助我 如果我写这个 for int i 5 num i gt
  • 面板之间切换

    我有 1 个表单中的 3 个面板来完成输入某些数据的过程 单击面板中的下一个按钮时 应显示下一个面板 最初 我启用了第一个面板的可见性并禁用了其他面板的可见性 当单击下一个按钮时 将执行以下代码 panel1 Visible false p
  • PHP:以五个为一组显示数据库中的条目?

    是否可能 如果可以 我该怎么做 选择数据库表中的所有条目 然后在一组中同时显示五个结果 含义 举个例子 我的数据库中有 15 条记录 那么我想像这样呈现我的数据 div class 1 5 Record 1 Record 2 Record
  • 如何使用 Tensorflow 1.0 Java API 创建/初始化变量

    我正在尝试移植这行Python代码 my var tf Variable 3 name input a 到爪哇 我能够做到这一点tf constant这样 graph opBuilder Const name setAttr dtype t
  • matplotlib轮廓图中的对称对数色阶

    如何创建具有符号对数 对称对数 比例的等高线图 即显示负值和正值的对数刻度 一种可能性是解决这个例子 http matplotlib org examples pylab examples contourf log html 这给出了对数刻