Matplotlib 轴标签将科学指数移动到同一行

2023-12-01

我目前正在制作一个 x 轴范围从 0 到 1.3e7 的图。我将其绘制如下:

plt.errorbar(num_vertices,sampled_ave_path_average,yerr=sampled_ave_path_stdev,fmt='.',markersize='1',capsize=2,capthick=2)
plt.xlabel('Number of vertices')
plt.ylabel('Average shortest path length')
plt.xlim(0,1.3*10**7)
plt.savefig('path_length_vs_N.eps', bbox_inches='tight')
plt.savefig('path_length_vs_N.png', bbox_inches='tight')
plt.close()

这会生成一个图,其中 x 轴刻度标签采用科学记数法,这正是我想要的。然而我想知道是否可以移动1e7(下面用红色圈出的部分)与其他标签在同一行吗? (我意识到这可能会导致对其他值的指数的混淆。)

output of plot routine showing location of scientific exponent marker


首先,你可以看看以下问题:

  • 如何将y轴比例因子移动到y轴标签旁边的位置?
  • 颜色条偏移文本(科学基础乘数)从颜色条的顶部移动到底部

第一个可能是一个可能的替代方案(因为您提到设想的解决方案“可能会导致指数混乱”)。第二个可能指出一种可能的解决方案,尽管它是关于使用颜色条。

因此,为了将偏移文本的位置更改为与 xtick 标签一致,可以采用以下方法。

import matplotlib.pyplot as plt
import numpy as np
import types

x = np.linspace(1e7, 9e7)
y = 1-np.exp(-np.linspace(0,5))
fig, ax = plt.subplots()
ax.plot(x,y)


pad = plt.rcParams["xtick.major.size"] + plt.rcParams["xtick.major.pad"]
def bottom_offset(self, bboxes, bboxes2):
    bottom = self.axes.bbox.ymin
    self.offsetText.set(va="top", ha="left") 
    oy = bottom - pad * self.figure.dpi / 72.0
    self.offsetText.set_position((1, oy))

ax.xaxis._update_offset_text_position = types.MethodType(bottom_offset, ax.xaxis)

plt.show()

enter image description here

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

Matplotlib 轴标签将科学指数移动到同一行 的相关文章

随机推荐

  • 在QML插件的QGLWidget上渲染QImage

    我正在尝试写一个QML插件从视频中读取帧 使用自定义小部件来执行该任务 而不是 QtMultimedia Phonon 并且每个帧都转换为QImageRGB888 然后显示在QGLWidget 出于性能原因 现在屏幕上没有任何内容 并且屏幕
  • 比较盒装长整型值 127 和 128

    我想比较两个Long对象值使用if状况 当这些值是小于 128 the if条件工作正常 但当他们大于或等于128 比较失败 Example Long num1 127 Long num2 127 if num1 num2 Works ok
  • 运行时错误:populate() 在 Django 中不可重入

    我正在尝试部署django网站 项目名称是pom 我尝试使用 apache2 在 ec2 服务器中运行 django 网站并收到以下错误 阿帕奇错误文件 Fri Jul 24 12 37 33 621285 2015 info pid 20
  • 为什么多维数组中需要更高维度的维度范围?

    根据该帖子 将 2D 数组传递给 C 函数 int array 10 10 void passFunc int a 10 lt Notice 10 here passFunc array 从编译器内部的角度来看 为什么需要这个更高的维度 另
  • 奇怪地使用方括号来调用函数

    使用方括号调用函数是如何工作的 100 toString function toString native code 100 toString length 1 这里到底发生了什么 这是括号表示法 任何属性都可以使用点或方括号表示法来访问
  • 减小图像的文件大小

    我用安卓相机拍了一张照片 结果是一个字节数组 我通过将其写入SD卡 FileOutputStream 来保存它 结果是文件大小接近 3mb 的图像 我想减小此文件大小 因此压缩图像 如果在将字节数组写入输出流之前能够减少文件大小 那就太好了
  • 让你的程序使用 GUI

    我想编写一个程序 能够通过控制鼠标 键盘并能够 查看 屏幕上的内容来 使用 其他程序 I used AutoIt做类似的事情 但有时我不得不作弊 因为语言不是那么强大 或者也许只是我很糟糕 我无法用它做那么多 P 所以 我需要 截屏 然后我
  • IntelliJ:将 jar 包含在 jar 工件中

    使用 IntelliJ 9 0 2 Community Edition 在 Mac 上进行开发 我有一个程序依赖于两个库罐子 我已经弄清楚如何让 IntelliJ 为我的源代码制作一个 jar 使用 Artifact 选项卡 甚至将两个 j
  • 如何重写此查询以避免错误:您无法在 FROM 子句中指定用于更新的目标表

    update websites set master 2 where url select url from websites where id 12 显然 mysql 不允许您对正在更新的表运行选择查询 将其放入派生表中 这会具体化为临时
  • 接口没有构造函数,那么如何继承呢?

    据我所知 子类构造函数通过使用调用超类构造函数super 但既然接口没有构造函数 那么如何实现继承呢 但是由于接口没有任何构造函数 如何进行继承 很简单 接口不能有任何实例字段 因此无需构造任何内容 您无法将代码放置在接口中 至少在 Jav
  • Chrome 内容脚本未在 about:blank 页面中加载

    我正在开发一个 Chrome 扩展 它将根据以下清单加载内容脚本 content scripts matches
  • EWS 管理:获取预约的必需和可选与会者

    就我现在而言 我知道如何从交换服务器获取约会 但是一旦我想查看必填和可选的与会者 这些字段都是空的 我检查了约会三次 有一个与会者 除了我 我是否必须以不同的方式配置 Outlook 或者我是否遗漏了某些内容 List
  • python - 在 memmap 和 CPU 中工作时进行快速矩阵乘法和归约的方法

    您好 我在进行快速矩阵乘法 加法 function overwrite 和轴缩减求和以及在没有 RAM 的 CPU 上使用 numpy memmaps 时遇到问题 我认为 仅当使用 numexpr 时 我才有可能避免从点创建数组 For e
  • Go中如何获取本地IP地址?

    我想获取计算机的IP地址 我使用了下面的代码 但它返回127 0 0 1 我想获取IP地址 例如10 32 10 111 而不是环回地址 name err os Hostname if err nil fmt Printf Oops v n
  • 如何使用 Node 正确地从 mysql 返回结果?

    在代码中 var stuff i want stuff i want get info parm 以及函数 get info get info data var sql SELECT a from b where info data con
  • 如何在zxing中触发批量模式扫描

    我读到有一个可以在 zxing 中启用批量模式扫描的键 我可以知道如何在 Android 应用程序中启用此键吗 我目前正在使用这样的代码来单独扫描条形码 Intent intent new Intent com google zxing c
  • 将类附加到 jQuery 对象

    我正在努力解决如何最好地结合 javascript 类和 jQuery 插件 这个问题不是很具体 我希望的是指向更多资源的指针 基本上 我想将状态数据和私有方法存储在一个类中 然后扩展我调用插件的每个 jQuery 对象以拥有这些私有方法和
  • ReactJS 和 jQuery 是互斥的吗?

    我是 ReactJS 的新手 ReactJS 似乎完全接管了渲染 DOM 节点的责任 并且不期望任何其他干扰 甚至是 jQuery 它带来了一个事实 即许多方便的 jQuery 插件无法在 React 中使用 其中一些插件已经实现了等效的
  • Angular.js、iframe 和 Firefox

    我有一种感觉 我错过了一些明显的东西 但我无法使 iframe 在 Firefox 中使用 Angular js 路由工作 这是一个示例 plunker 代码 The index html文件包含ng view哪个加载main html d
  • Matplotlib 轴标签将科学指数移动到同一行

    我目前正在制作一个 x 轴范围从 0 到 1 3e7 的图 我将其绘制如下 plt errorbar num vertices sampled ave path average yerr sampled ave path stdev fmt