【问题标题】:Python matplotlib grouping of x axis valuesx轴值的Python matplotlib分组
【发布时间】:2017-03-17 20:08:56
【问题描述】:

我有以下情节(使用 matplotlib 绘制)。正如您在 x 轴上看到的,一年中的天数显示为 0-364 之间的数字。

但我想将 x 轴分成 12 个相等的部分。输出必须显示月份的名称为 Jan、Feb、Mar、...、Nov、Dec。在 matplotlib 上是否有任何已知的方法来实现。

【问题讨论】:

  • 有一种已知的方法,参见例如here。顺便说一句,您可以在轴标签中引入 LaTeX 代码以获得更好的箭头,例如plt.xlabel(r'Days $\rightarrow$')。同样适用于图例、标题等。字符串前面的r 代表原始字符串。
  • 您提供的链接有所帮助。我能够将 x 轴分成 12 个相等的部分。但是我应该如何将整数值从 0 到 364 转换为月份。
  • 我试过了,就像你看到的 here,尽管这可能不是最好的解决方案。抱歉,我不知道如何在 Stack Overflow 的 cmets 中正确发布代码。我希望你理解代码的想法,这样你就可以根据你的问题调整它。

标签: python python-3.x matplotlib


【解决方案1】:

我认为您只想使用月份定位器绘制日期。

%matplotlib inline
from datetime import datetime
import numpy
from matplotlib import pyplot, dates, ticker

# setup your date values (arbitrary year)
oneday = datetime(1990, 1, 2) - datetime(1990, 1, 1)
start = datetime(1990, 1, 1)
end = datetime(1991, 1, 1)
date = dates.drange(start, end, oneday)

# make data
values = numpy.random.uniform(low=-5, high=10, size=365).cumsum()

# axis tooling
locator = dates.MonthLocator()
formatter = dates.DateFormatter('%b')

# plot things, use the locators
fig, ax = pyplot.subplots()
ax.plot_date(date, values, '-')
ax.xaxis.set_major_locator(locator)
ax.xaxis.set_major_formatter(formatter)

【讨论】:

    猜你喜欢
    • 2022-06-22
    • 1970-01-01
    • 2020-07-08
    • 2017-09-03
    • 2022-01-12
    • 2021-12-02
    • 1970-01-01
    • 2019-10-05
    • 1970-01-01
    相关资源
    最近更新 更多