- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
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)
现在我想更改添加在图像下方的第二个 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()
本例中绘制的图形正是您要寻找的:
<小时/>为了增加这是一个小错误的假设,与之前相同的 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/
我想在使用 AxesGrid 工具包的绘图中添加另一个颜色条。例如,我在左侧使用 ImageGrid 添加了一个颜色条轴,然后在右侧手动添加了另一个。这是一个简单的例子: f = plt.figure
我正在使用 AxesGrid 类绘制如下图: 代码基本上是这样的: grid = AxesGrid(fig, 111, nr
我想在 matplotlib 中创建一个 2x3 的二维直方图图,每个子图的顶部都有一个共享的颜色条和一个一维直方图。 AxesGrid除了最后一部分,我得到了一切。我尝试按照 "scatter_hi
AxesGrid工具包提供了host_subplot函数,可以创建多个平行轴,如下代码所示: from mpl_toolkits.axes_grid1 import host_subplot impo
(从this Github issue复制过来) 我正在尝试修改使用 cartopy + AxesGrid 的轴的刻度标签,按照 cartopy 文档中显示的示例 here .但与示例不同的是,我只想
我已经安装了 anaconda3 和 matplotlib。 唯一的问题是,mpl_toolkits 不是可识别的软件包。即,以下代码不起作用: import mpl_toolkits 我在谷歌上到处
我是一名优秀的程序员,十分优秀!