【问题标题】:Get xticks, modify them and replace them in pandas datetimeindex plot获取 xticks,修改它们并在 pandas datetimeindex 图中替换它们
【发布时间】:2020-10-10 12:12:16
【问题描述】:

我有一个具体的问题:我正在绘制一个时间序列,该时间序列来自具有 DatetimeIndex 索引的数据帧,该索引带有 pandas 的特定格式,如下所示:

问题是,日期格式(显然)假设英语是我的语言。在这种情况下,我需要用西班牙语显示月份的传说,即:将“Dec”更改为“Dic”,将“Jan”更改为“Ene”。我尝试保存刻度的值,修改它们然后替换它们,但我无法完成我计划的第三部分。这是我尝试过的:

from matplotlib.text import Text

df.plot()    
b = (plt.xticks())

b[1][2] = Text(2605, 0, '\n\nDic')
b[1][3] = Text(2610, 0, '\n\nEne\n2020')
ax.set_xticklabels(b)

所以b 原来是:

(array([2599, 2601, 2605, 2610], dtype=int64),
[Text(2599, 0, '20'), 
 Text(2601, 0, '\n\nNov'), 
 Text(2605, 0, '\n\nDec'),
 Text(2610, 0, '\n\nJan\n2020')])

我把它改成了:

(array([2599, 2601, 2605, 2610], dtype=int64),
 [Text(2599, 0, '20'),
  Text(2601, 0, '\n\nNov'),
  Text(2605, 0, '\n\nDic'),
  Text(2610, 0, '\n\nEne\n2020')])

但我不知道如何使用它。另外,我觉得必须有一种更简单的方法来做到这一点。你有什么建议吗?

谢谢!

【问题讨论】:

  • 也许this answer 可以帮助你。如果没有,您能否提供我们的数据样本?这样我们就可以复制您的确切情况。

标签: python pandas matplotlib


【解决方案1】:

最简单的方法是仅在必要时更改语言环境。

import locale
locale.setlocale(locale.LC_TIME, 'es_ES.UTF-8')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-16
    • 2013-04-27
    • 1970-01-01
    相关资源
    最近更新 更多