文本在*内*边界框内对齐

2024-01-07

文本框的对齐方式可以通过horizontalalignment (ha) and verticalalignment (va) 参数,例如

import matplotlib.pyplot as plt
fig, ax = plt.subplots(figsize=(8,5))
plt.subplots_adjust(right=0.5)
txt = "Test:\nthis is some text\ninside a bounding box."
fig.text(0.7, 0.5, txt, ha='left', va='center')

其产生:

有没有办法保持相同的边界框(bbox)对齐,同时更改该边界框中文本的对齐方式?例如使文本在边界框中居中。

(显然在这种情况下我可以只替换边界框,但在更复杂的情况下我想独立更改文本对齐方式。)


确切的 bbox 取决于特定后端的渲染器。以下示例保留文本 bbox 的 x 位置。精确地保留 x 和 y 有点棘手:

import matplotlib
import matplotlib.pyplot as plt

def get_bbox(txt):
    renderer = matplotlib.backend_bases.RendererBase()
    return txt.get_window_extent(renderer)

fig, ax = plt.subplots(figsize=(8,5))
plt.subplots_adjust(right=0.5)
txt = "Test:\nthis is some text\ninside a bounding box."
text_inst = fig.text(0.7, 0.5, txt, ha='left', va='center')

bbox = get_bbox(text_inst)
bbox_fig = bbox.transformed(fig.transFigure.inverted())
print("original bbox (figure system)\t:", bbox.transformed(fig.transFigure.inverted()))

# adjust horizontal alignment
text_inst.set_ha('right')
bbox_new = get_bbox(text_inst)
bbox_new_fig = bbox_new.transformed(fig.transFigure.inverted())
print("aligned bbox\t\t\t:", bbox_new_fig)

# shift back manually
offset = bbox_fig.x0 - bbox_new_fig.x0
text_inst.set_x(bbox_fig.x0 + offset)
bbox_shifted = get_bbox(text_inst)
print("shifted bbox\t\t\t:", bbox_shifted.transformed(fig.transFigure.inverted()))
plt.show()

打印输出

original bbox (figure system)   : Bbox(x0=0.7000000000000001, y0=0.467946875, x1=0.84201171875, y1=0.532053125)
aligned bbox            : Bbox(x0=0.55798828125, y0=0.467946875, x1=0.7000000000000001, y1=0.532053125)
shifted bbox            : Bbox(x0=0.7000000000000002, y0=0.467946875, x1=0.8420117187500001, y1=0.532053125)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

文本在*内*边界框内对齐 的相关文章

  • 如何在多进程系统中实现锁定?

    我们正在并行运行许多詹金斯项目 我们使用 python 并且选择使用 pyenv 管理虚拟环境 不幸的是 pyenv 有一个众所周知的竞争条件 https github com yyuu pyenv issues 174 为了解决这个问题
  • Python 切片对象和 __getitem__

    python 中是否有内部的东西来处理传递给的参数 getitem 不同 并自动转换start stop step构造成切片 这是我的意思的演示 class ExampleClass object def getitem self args
  • 从文本文件中删除特定字符

    我对 Python 和编码都很陌生 我当时正在做一个小项目 但遇到了一个问题 44 1 6 23 2 7 49 2 3 53 2 1 68 1 6 71 2 7 我只需要从每行中删除第三个和第六个字符 或者更具体地说 从整个文件中删除 字符
  • Virtualenv 在 OS X Yosemite 上失败并出现 OSError

    我最近更新到 OSX Yosemite 现在无法使用virtualenv pip 每当我执行 virtualenv env 它抛出一个 OSError Command Users administrator ux env bin pytho
  • 是否可以从 Julia 调用 Python 函数并返回其结果?

    我正在使用 Python 从网络上抓取数据 我想使用这些数据在 Julia 中运行计算 是否可以在 Julia 中调用该函数并返回其结果 或者我最好直接导出到 CSV 并以这种方式加载数据 绝对地 看PyCall jl https gith
  • matplotlib 未检测到字体

    当我使用fontname 与Humor Sans字体我收到此错误 usr lib python3 5 site packages matplotlib font manager py 1288 UserWarning findfont Fo
  • 使用 Boto3 以字符串形式打开 S3 对象

    我知道使用 Boto 2 可以使用以下命令将 S3 对象作为字符串打开 get contents as string http boto readthedocs org en latest ref file html highlight c
  • 如何通过 python 多处理利用所有核心

    我一直在摆弄Python的multiprocessing现在已经使用了一个多小时的功能 尝试使用并行化相当复杂的图形遍历函数multiprocessing Process and multiprocessing Manager import
  • 如何确保 re.findall() 停止在正确的位置?

    这是我的代码 a import re re findall r lt title gt lt title gt a 结果是 title aaa
  • Python Tkinter 模块不显示输出

    我正在尝试学习 Python 并尝试使用 Python 中的 GUI 并遇到了这个 Tkinter 模块 我的代码运行 但运行时窗口没有出现 我的代码如下 from Tkinter import to create a root windo
  • 在Python上获取字典的前x个元素

    我是Python的新手 所以我尝试用Python获取字典的前50个元素 我有一本字典 它按值降序排列 k 0 l 0 for k in len dict d l 1 if l lt 51 print dict 举个小例子 dict d m
  • Paste.httpserver 并通过 HTTP/1.1 Keep-alive 减慢速度;使用 httperf 和 ab 进行测试

    我有一个基于paste httpserver 的Web 服务器作为HTTP 和WSGI 之间的适配器 当我使用 httperf 进行性能测量时 如果每次使用 num conn 启动一个新请求 我每秒可以执行超过 1 000 个请求 如果我使
  • 查找 Pandas DF 行中的最短日期并创建新列

    我有一个包含多个日期的表 有些日期将为 NaN 我需要找到最旧的日期 所以一行可能有 DATE MODIFIED WITHDRAWN DATE SOLD DATE STATUS DATE 等 因此 对于每一行 一个或多个字段中都会有一个日期
  • Airflow 1.9 - 无法将日志写入 s3

    我在 aws 的 kubernetes 中运行气流 1 9 我希望将日志发送到 s3 因为气流容器本身的寿命并不长 我已经阅读了描述该过程的各种线程和文档 但我仍然无法让它工作 首先是一个测试 向我证明 s3 配置和权限是有效的 这是在我们
  • 检测是否从psycopg2游标获取?

    假设我执行以下命令 insert into hello username values me 我跑起来就像 cursor fetchall 我收到以下错误 psycopg2 ProgrammingError no results to fe
  • 使用 PIL 在 Tkinter 中显示动画 GIF

    我正在尝试制作一个程序来使用 Tkinter 显示动画 GIF 这是我最初使用的代码 from future import division Just because division doesn t work right in 2 7 4
  • 无法通过 Python 子进程进行 SSH

    我需要通过堡垒 ssh 进入机器 因此 该命令相当长 ssh i
  • AWS Lambda 不读取环境变量

    我正在编写一个 python 脚本来查询 Qualys API 中的漏洞元数据 我在 AWS 中将其作为 lambda 函数执行 我已经在控制台中设置了环境变量 但是当我执行函数时 出现以下错误 module initialization
  • 如何将带有参数的Python装饰器实现为类?

    我正在尝试实现一个接受一些参数的装饰器 通常带有参数的装饰器被实现为双重嵌套闭包 如下所示 def mydecorator param1 param2 do something with params def wrapper fn def
  • rpy2 无法加载外部库

    希望有人能帮忙解决这个问题 R版本 2 14 1rpy2版本 2 2 5蟒蛇版本 2 7 3 一直在尝试在 python 脚本中使用 rpy2 加载 R venneuler 包 该包以 rJava 作为依赖项 venneuler 和 rJa

随机推荐

  • 如何修改这个缓动函数以减少弹跳?

    我正在尝试修改 Flash CS3 提供的fl motion easing bounce函数使生成的动画弹跳更少 我知道 减少弹跳 有点模糊 但我希望能帮助您理解该功能 Thanks param t Specifies the curren
  • Django 模板中的外键关系

    我知道这个问题已经被问过很多次了 但我仍然无法解决 model py class Awb models Model awb id models CharField primary key True max length 50 awb shi
  • Android 截取 Surface View 的屏幕截图显示黑屏

    我正在尝试通过代码截取我的游戏的屏幕截图并通过意图共享它 我可以做这些事情 但是屏幕截图总是显示为黑色 这是与共享屏幕截图相关的代码 View view MainActivity getView view setDrawingCacheEn
  • iPhone:ubercab 又名 (uber) 地图坐标

    谁能描述如何通过 MKMapView 在屏幕中心的位置获取其地图坐标 查看 Uber 应用程序 免费 它们有一个静态的图钉位于屏幕中间 您拖动地图但图钉仍保留在那里 屏幕中间是他们找到您的位置 非常非常快 向您显示您附近的地址 嘿嘿 我是
  • 临时反应组件中的样式组件

    我在反应中的临时包装器中使用样式组件时遇到两个问题 组件已渲染 但不使用背景颜色 ComponentWithAddedColors 不是有效的打字稿 不知道为什么 有谁可以帮忙解决这个问题吗 interface IProps id stri
  • Numpy 一次将数组与多个标量进行比较

    假设我有一个数组 a np array 1 2 3 我想将它与一些标量进行比较 这工作得很好 就像 a 2 False True False 有没有办法可以同时使用多个标量进行这样的比较 比较两个数组时的默认行为是进行元素比较 但我希望一个
  • Django如何访问抽象Base模型局部变量

    我将这个抽象基本模型定义如下 class ActivityAbstractBaseModel models Model POOR PR FAIR FA MEDIOCRE ME GOOD ENOUGH GE GOOD GO VERY GOOD
  • ODBC 不断提示输入密码

    我有一个在 Access 2003 中构建的应用程序 它使用系统 DSN ODBC 连接到 SQL Server ODBC 使用 SQL 身份验证 当应用程序启动时 系统会提示用户在数据库中进行身份验证 我在同一域中设置了另一台计算机 并安
  • 在 Hive 中获取系统日期 -1

    有什么办法可以得到current date 1在 Hive 中的意思是yesterdays date总是 并且以这种格式 20120805 我可以像这样运行查询来获取数据yesterday s date就像今天一样Aug 6th selec
  • 防止xss攻击的更好方法

    这两种方法中哪一种是更好的防止 xss 攻击的方法 保存在数据库中时的 HTMLEntities 显示 回显时的 HTMLEntities 我发现第一个更好 因为您可能会在显示时忘记添加它 两者中哪一个是更好的防止xss攻击的方法 保存在数
  • 将 Spark 数据加载到 Mongo / Memcached 中以供 Web 服务使用

    我对 Spark 非常陌生 并且有一个特定的工作流程相关问题 虽然它并不是真正与编码相关的问题 但它更像是与 Spark 功能相关的问题 我认为它在这里是合适的 如果您认为这个问题不适合 请随时将我重定向到正确的网站 所以这里是 1 我计划
  • 在没有管理员权限的情况下安装 MSBuild 15(Microsoft 构建工具)?

    有没有办法在没有管理员权限的情况下在我的计算机上本地安装 MSBuild 15 微软安装程序开启https www visualstudio com downloads https www visualstudio com download
  • 我怎样才能获得正确的付款期限?

    我觉得这更像是数学问题 我公司的员工遍布全国各地 公司的某些部门采用 奇数 工资周期 而另一些部门则采用 偶数 工资周期 我将给定支付期的开始日期称为 支付期 我需要做两件事 1 确定给定日期所属的发薪期 Something like th
  • 了解简单 C 程序生成的汇编代码

    我试图通过使用 gdb 的反汇编程序检查简单 C 程序的汇编级代码 以下是C代码 include
  • 如何为 Dagger2 提供 GoogleApiClient 依赖项?

    我已经开始使用 Dagger2 来管理依赖项 并且我试图了解如何使用 DI 来提供单例 GoogleApiClient 这样做的动机是 减少样板代码 多个 Activity 和 Fragments 需要 GoogleApiClient 提高
  • Vuejs - 无法读取未定义的属性“_withTask”

    我试图在按下按钮后将新的 html 添加到我的 div 中 使用v for 但是在我按下按钮后 我收到此错误 并且元素 文章 被添加到 div 一次 但之后它就不再起作用了 vue js 3de6 1743 TypeError 无法读取未定
  • Visual Studio 2015 RC - 无法添加虚拟目录

    我最近升级了我的机器 这意味着我必须安装 VS 2015 RC 社区 打开以前的项目 必须重新创建以前的所有虚拟目录 才发现当我尝试时收到以下错误消息 操作无法完成 只需选择 添加虚拟目录 时 输入名称和路径 然后按 Enter 键 还有其
  • Tensorflow Dataset API 在完成一个 epoch 后恢复迭代器

    我有 190 个特征和标签 我的批量大小是 20 但经过 9 次迭代tf reshape正在返回异常reshape 的输入是一个有 21 个值的张量 但请求的形状有 60 个我知道这是因为Iterator get next 如何恢复我的迭代
  • 如何使用 pandas 将列中的每个 NaN 替换为不同的随机值?

    我最近一直在玩 pandas 现在我尝试用不同的正态分布随机值替换数据框中的 NaN 值 假设我有这个没有标题的 CSV 文件 0 0 343 1 483 2 101 3 NaN 4 NaN 5 NaN 我的预期结果应该是这样的 0 0 3
  • 文本在*内*边界框内对齐

    文本框的对齐方式可以通过horizontalalignment ha and verticalalignment va 参数 例如 import matplotlib pyplot as plt fig ax plt subplots fi