当前位置: 首页 > 面试题库 >

matplotlib:更改yaxis刻度标签

胡景澄
2023-03-14
问题内容

对于y轴上的每个刻度标签,我想更改: label -> 2^label

我正在绘制对数日志数据(以2为底),但是我希望标签显示原始数据值。

我知道我可以得到当前的y标签 ylabels = plt.getp(plt.gca(), 'yticklabels')

这给了我一个列表:<a list of 9 Text yticklabel objects> 每个列表都是<matplotlib.text.Text object at 0x...>

我在http://matplotlib.org/users/text_props.html上查看了文本对象的文档,
但是我仍然不确定更改每个文本标签中的字符串的正确语法是什么。

更改标签后,可以使用以下方法在轴上设置它们:

plt.setp(plt.gca(), 'yticklabels', ylabels)


问题答案:

如果要做到这一点你可以使用一般的情况下FuncFormatter(参见:
matplotlib轴标签格式,[mshow:标签作为图像索引的任意功能。Matplotlib
set_major_formatterAttributeError的

在您这种情况下,以下方法应该起作用:

import matplotlib as mpl
import matplotlib.pyplot as plt

def mjrFormatter(x, pos):
    return "$2^{{{0}}}$".format(x)

def mjrFormatter_no_TeX(x, pos):
    return "2^{0}".format(x)

ax = plt.gca()
ax.yaxis.set_major_formatter(mpl.ticker.FuncFormatter(mjrFormatter))
plt.draw()

该absured{}转义是新型串frommating的结果



 类似资料:
  • 试图在ChartJS中得到一个linechart。我希望yAxis标签应该是0、250k、500k、750k。 如何更改标签,使其最小值始终为0?

  • 刻度指的是轴上数据点的标记,Matplotlib 能够自动的在 x 、y 轴上绘制出刻度。这一功能的实现得益于 Matplotlib 内置的刻度定位器和格式化器(两个内建类)。在大多数情况下,这两个内建类完全能够满足我们的绘图需求,但是在某些情况下,刻度标签或刻度也需要满足特定的要求,比如将刻度设置为“英文数字形式”或者“大写阿拉伯数字”,此时就需要对它们重新设置。 xticks() 和 ytic

  • 我想沿x轴水平移动一些记号的标签,而不移动相应的记号。 更具体地说,当使用

  • 问题内容: 我正在尝试修复python如何绘制数据。 说 和 然后我会做: 并且x轴的刻度线以5的间隔绘制。是否有办法使其显示1的间隔? 问题答案: 你可以使用以下命令显式设置要在刻度线打勾的位置: 例如, (以防万一,使用它而不是Python的range函数,它们是浮点数而不是整数。) 的(或)功能将自动设置默认x和y限制。如果你希望保留这些限制,而只是更改刻度线的步长,则可以用来发现已设置的限

  • 问题内容: 我想对图中的几个选定的刻度线标签进行一些修改。 例如,如果我这样做: 字体大小和刻度标签的方向已更改。 但是,如果尝试: 蜱标签不修改。另外,如果我这样做: 什么都不会打印。 这里有些奇怪。当我尝试这个: 仅打印空字符串,但图中包含标记为“ 0.0”,“ 0.5”,“ 1.0”,“ 1.5”和“ 2.0”的刻度。 问题答案: 警告:除非已设置为字符串(例如在boxplot中通常是这种情

  • 我正在创建一个用于学习目的的模拟时钟小部件,并想知道我如何可以做出一个设置布局来改变时钟刻度盘图像。我已经完成了小部件,但我似乎无法得到一个onclicklstener来调出设置布局。 这就是我所拥有的: