gpt4 book ai didi

python - 如何更改使用 host_subplot 创建的轴的标签(来自 AxesGrid 工具包)

转载 作者:行者123 更新时间:2023-11-30 23:06:14 28 4
gpt4 key购买 nike

AxesGrid工具包提供了host_subplot函数,可以创建多个平行轴,如下代码所示:

from mpl_toolkits.axes_grid1 import host_subplot
import mpl_toolkits.axisartist as AA
import matplotlib.pyplot as plt


host = host_subplot(111, axes_class=AA.Axes)
plt.subplots_adjust(bottom=0.15)
par2 = host.twiny()
par2.axis["bottom"] = par2.get_grid_helper().new_fixed_axis(loc="bottom", axes=par2, offset=(0, -30) )
par2.axis["bottom"].toggle(all=True)

这将创建下图: enter image description here

现在我想更改添加在图像下方的第二个 x 轴的标签。我尝试了以下方法(除其他外):

from mpl_toolkits.axes_grid1 import host_subplot
import mpl_toolkits.axisartist as AA
import matplotlib.pyplot as plt


host = host_subplot(111, axes_class=AA.Axes)
par2 = host.twiny()
par2.axis["bottom"] = par2.get_grid_helper().new_fixed_axis(loc="bottom", axes=par2, offset=(0, -30) )

for item in par2.get_xticklabels():
item.set_text('new label')

par2.axis["bottom"].toggle(all=True)

遗憾的是 par2.get_xticklabels() 似乎并没有像我天真的预期的那样工作(即它不返回 x 轴的标签)。

我发现解决类似问题的最相似问题是 How to change the font size for multiple axes labels (created with host_subplot API) ,这会更改字体大小属性(不是附加到 xaxis 刻度的单个标签)。

最佳答案

好吧,我在尝试寻找答案时学到了一件事:IPython 是一个非常好的助手。

<小时/>

总之,言归正传。通过 get_xticklabels() 迭代每个条目来设置文本似乎存在一些问题。通过使用 set_text(my_text) 进行分配,即使 my_text 确实传入了 Text 对象,但出于某种原因,它之后不会拾取它.

恰当的例子:

[item.set_text("Some Text") for item in par2.get_xticklabels()]

for item in par2.get_xticklabels():
print item

# Prints
Text(0,0,'Some Text')
Text(0,0,'Some Text')
Text(0,0,'Some Text')
Text(0,0,'Some Text')
Text(0,0,'Some Text')
Text(0,0,'Some Text')

# plt.show() does not display these changes.

谢天谢地(而且奇怪的是),设置标签 有效 通过这样做时 set_xticklabels()

# Omitting rest of script.

# Set as False or else the top axis also gets these labels.
# Try commenting the line out to view what I mean.
par2.axis["top"].set_visible(False)
par2.set_xticklabels(["THIS", "IS", "PROBABLY", "A", "LITTLE", "BUG"])

plt.show()

本例中绘制的图形正是您要寻找的:

bottom axis tick labels

<小时/>

为了增加这是一个小错误的假设,与之前相同的 print 语句的输出返回与之前类似的表示。

for item in par2.get_xticklabels():
print item

Text(0,0,'THIS')
Text(0,0,'IS')
Text(0,0,'PROBABLY')
Text(0,0,'A')
Text(0,0,'LITTLE')
Text(0,0,'BUG')

我不是最擅长使用 matplotlib 的,但这看起来很可疑。也许有更多知识的人可以验证。

关于python - 如何更改使用 host_subplot 创建的轴的标签(来自 AxesGrid 工具包),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32746912/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com