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

matplotlib轴标签格式

子车睿
2023-03-14
问题内容

我遇到了轴刻度标签的格式问题。我禁用了y_axis的偏移量:

ax1.ticklabel_format(style = 'sci', useOffset=False)

并尝试将其设置为科学格式,但我得到的是:

0.00355872

但我期望这样的事情:

3.55872...E-2

或类似。

我真正想要的是这样的:

3.55872... (on the tick label)
x 10^2  (or something similar - on the axis label)

我可以尝试将标签设置为静态,但是最后我将拥有数十或数百个具有不同值的图,因此需要动态设置。

一种替代方法是将y_axis偏移量放置为标签,但是我也不知道如何执行此操作。


问题答案:

有很多方法可以做到这一点

您可以调整功率限制(doc)

ax1.xaxis.get_major_formatter().set_powerlimits((0, 1))

设置了ScalerFormatter转换为科学计数法的权力

或者,您可以使用FuncFormatter来给您带来很多控制权(但是您可以放开脚)。

from matplotlib import ticker

scale_pow = 2
def my_formatter_fun(x, p):
    return "%.2f" % (x * (10 ** scale_pow))
ax1.get_xaxis().set_major_formatter(ticker.FuncFormatter(my_formatter_fun))
ax1.set_xlabel('my label ' + '$10^{{{0:d}}}$'.format(scale_pow))

FuncFormatter
(doc)采用2参数函数,该函数返回字符串,并使用该函数格式化标签。(请注意,这还将更改在交互式图形的一角显示值的方式)。第二个参数用于“位置”,它是格式化程序制作标签时使用的参数。您可以放心地忽略它,但是您必须接受它(否则,您将从错误数量的参数中得到错误)。这是所有格式器的统一API以及使用格式器以交互方式显示鼠标位置的结果。



 类似资料:
  • 在一个函数图像中,有时自变量 x 与因变量 y 是指数对应关系,这时需要将坐标轴刻度设置为对数刻度。Matplotlib 通过 axes 对象的或属性来实现对坐标轴的格式设置。 示例:右侧的子图显示对数刻度,左侧子图则显示标量刻度。 图1:对数关系图 轴是连接刻度的线,也就是绘图区域的边界,在绘图区域(axes 对象)的顶部、底部、左侧和右侧都有一个边界线(轴)。通过指定轴的颜色和宽度,从而对进行

  • 问题内容: 是否有一种简单的方法可以将y轴标签放在图的右侧?我知道可以使用来对刻度标签进行此操作,但是我想知道是否也可以对轴标签进行此操作。 我想到的一个想法是使用 但是,在保留y轴的范围的同时,将所有标签(刻度和轴标签)放置在右侧并没有达到预期的效果。简而言之,我想要一种将所有y轴标签从左向右移动的方法。 问题答案: 看来您可以使用以下方法做到这一点: 请参阅此处的示例。

  • 问题内容: 我在这里阅读了其他问题 作为删除当前图上轴偏移的一种方法,但是默认情况下有什么方法吗?我在matplotlibrc文件中看不到任何有帮助的东西。 问题答案: 不,没有办法。它在353行的源文件中定义: 作为默认参数值。因此默认值为。 当然,您可以修改源。

  • 问题内容: 我一般对Python和编程都不熟悉,所以如果我遗漏了一些明显的东西,请提前道歉。我正在尝试绘制图形并标记轴,但是每次尝试标记y轴时都会引发异常。我在下面的新脚本中编写了代码,以确保问题不是来自模块中的其他地方。我正在使用Python 3.4。 每次,我在最后一行收到错误“ TypeError:’str’对象不可调用”。如果我将y更改为x,一切都很好。如果将x更改为ay,则会收到相同的错

  • 我的Python脚本里有这个 它产生了一个像这样的图表 正如你所看到的,x标签被切断了,这不是我没有完全扩展图形,我已经尝试过了,它仍然被切断。我怎样才能在图表上得到整个标签? 谢啦

  • 以下是postgres 9.1数据库的一些SQL示例: 这是我的python脚本: 有没有办法防止标签相互重叠?理想情况下是以自动方式,因为我无法预测棒的数量。