gpt4 book ai didi

python - matplotlib中轴标签文本顶部的位置是什么?

转载 作者:行者123 更新时间:2023-11-28 17:43:41 25 4
gpt4 key购买 nike

我正在尝试放置一些额外的注释以与 matplotlib 图中的轴标签文本对齐。这个位置是如何根据刻度和轴标签的字体大小以及注释的字体大小计算的?

具体来说,给定一个沿 x 轴具有一组刻度标签和一个轴标签的图形,字体大小分别为 tick_font_sizelabel_font_size,什么是图形点中的垂直位置 y 会导致

ax.annotate('Some text', (x, y), va='top', ...)

将字体大小为 annotation_font_size'Some text' 与轴标签垂直对齐?


由于各种原因,我必须为此使用annotate,而va='top'是一个约束;并且我需要使用上面的字体大小信息——也就是说,我正在寻找表单的功能

y = f(tick_font_size, label_font_size, annotation_font_size)

所有值都在图点中(即,可与 annotate 中的 textcoords='offset points' 一起使用)。这样的算法必须存在,因为 matplotlib 明确使用它来首先定位轴标签。

最佳答案

获取设置xlabel时返回的对象。渲染图形并使用 get_position 获取标签的位置。从那里做一些转换并添加注释。

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(10)
y = x**2

xlabel = plt.xlabel("test")
plt.plot(x, y)

ax = plt.gca()
fig = plt.gcf()
fig.draw(fig.canvas.get_renderer())

trans = xlabel.get_transform()
xpos, ypos = trans.transform(xlabel.get_position()) # convert to display coordinates
xpos, ypos = fig.transFigure.inverted().transform([xpos, ypos]) # convert to figure coordinates
ax.annotate('Some text', (xpos+0.05, ypos), xycoords='figure fraction', va="top")
plt.show()

关于python - matplotlib中轴标签文本顶部的位置是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21028377/

25 4 0