gpt4 book ai didi

python - matplotlib:set_major_formatter() 和 fmt_xdata 有什么区别?

转载 作者:行者123 更新时间:2023-12-01 08:28:59 25 4
gpt4 key购买 nike

我是 matplotlib 的新手。我从 here 复制了简单 pyqt-matplotlib 示例的代码,并更改了 class PlotCanvasplot() 以制作值(value)时间图表。

  def plot(self):
dates = mdates.drange(dt.datetime(2010, 1, 1), dt.datetime(2010,1,2),
dt.timedelta(minutes=10))
y_val = [random.random() for i in range(len(dates))]

ax = self.figure.add_subplot(111)
ax.plot(dates, y_val)

use_major_formatter = True
if use_major_formatter:
ax.xaxis.set_major_formatter(mdates.DateFormatter('%m-%d %H:%M'))
else:
ax.fmt_xdata = DateFormatter('%%m-%d %H:%M')
self.figure.autofmt_xdate()

ax.set_title('PyQt Matplotlib Example')
self.draw()

以上代码需要这些导入:

import matplotlib.dates as mdates
import datetime as dt
from matplotlib.dates import DateFormatter

我尝试了set_major_formatter()fmt_xdata。我发现 fmt_xdata 不起作用。

但是为什么呢?set_major_formatter() 和 fmt_xdata 有什么区别?

注意:在上面的代码中,我添加了 if 语句来测试两个方法。

最佳答案

ax.xaxis.set_major_formatter()ax.fmt_xdata是完全不同的事情。

第一个,ax.xaxis.set_major_formatter() ,设置绘图中 x 轴的格式化程序。这对于以所需格式显示刻度标签很有用。

第二个,ax.fmt_xdata是一个接受数据坐标并对其进行格式化的函数。默认情况下,它只会返回与主要格式化程序相同的内容。它在内部用于格式化 GUI 中移动鼠标时显示的数字。

enter image description here

您可以替换 ax.fmt_xdata如果您希望 GUI 显示与轴不同的数字/字符串,则可以通过您自己的自定义可调用方法来实现。

关于python - matplotlib:set_major_formatter() 和 fmt_xdata 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54018788/

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