gpt4 book ai didi

python - 在 matplotlib 中的刻度线之间居中 x-tick 标签

转载 作者:IT老高 更新时间:2023-10-28 21:02:54 26 4
gpt4 key购买 nike

我想让 x-tick 日期标签在刻度线之间居中,而不是如下图所示以刻度线为中心。

我已阅读文档但无济于事 - 有谁知道这样做的方法吗?

enter image description here

如果有帮助,这里是我用于 x 轴刻度格式的所有内容:

day_fmt = '%d'   
myFmt = mdates.DateFormatter(day_fmt)
ax.xaxis.set_major_formatter(myFmt)
ax.xaxis.set_major_locator(matplotlib.dates.DayLocator(interval=1))

for tick in ax.xaxis.get_major_ticks():
tick.tick1line.set_markersize(0)
tick.tick2line.set_markersize(0)
tick.label1.set_horizontalalignment('center')

最佳答案

一种方法是使用次要刻度。这个想法是您设置次要刻度,以便它们位于主要刻度之间的中间,并且您手动指定标签。

例如:

import matplotlib.ticker as ticker

# a is an axes object, e.g. from figure.get_axes()

# Hide major tick labels
a.xaxis.set_major_formatter(ticker.NullFormatter())

# Customize minor tick labels
a.xaxis.set_minor_locator(ticker.FixedLocator([1.5,2.5,3.5,4.5,5.5]))
a.xaxis.set_minor_formatter(ticker.FixedFormatter(['1','2','3','4','5']))

三行:

  • “隐藏”主要刻度上的 1,2,3,4,...
  • 在主要滴答之间设置次要滴答(假设您的主要滴答位于 1、2、3...)
  • 手动指定次要刻度的标签。这里,“1”在图表上介于 1.0 和 2.0 之间。

这只是一个简单的例子。您可能希望通过在循环中填充列表或其他方式来简化它。

您也可以尝试其他locators or formatters .

编辑:或者,按照评论中的建议:

# Hide major tick labels
a.set_xticklabels('')

# Customize minor tick labels
a.set_xticks([1.5,2.5,3.5,4.5,5.5], minor=True)
a.set_xticklabels(['1','2','3','4','5'], minor=True)

示例:

之前: Before

之后: enter image description here

关于python - 在 matplotlib 中的刻度线之间居中 x-tick 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17158382/

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