gpt4 book ai didi

python - 如何为不同语言设置 matplotlib.dates.DateFormatter

转载 作者:太空宇宙 更新时间:2023-11-03 19:07:07 24 4
gpt4 key购买 nike

我试过了

import locale
locale.setlocale(locale.LC_TIME,'en_US')
tyme = [datetime(2009,10,6,12) + timedelta(hours=6*i) for i in range(5)]
plt.contour(x, tyme, data)
ax=plt.gca()
ax.yaxis.set_major_formatter(matplotlib.dates.DateFormatter('%Hz%d%b'))

但 yaxis 标签绘制的不是 00Z07Oct 而是 00Z0710□(可能是在我的语言环境日语中绘制的,字符是乱码。)

另一方面,我尝试过,

 import locale
locale.setlocale(locale.LC_TIME,'en_US')
print datetime(2009,10,7,0).strftime(''%Hz%d%b)

结果是

00z07Oct

这很有效。

如何在不同语言环境下设置英语的 matplotlib.dates.DateFormatter ?任何帮助将不胜感激。

最佳答案

我怀疑这与 unicode 问题有关,特别是 matplotlib.cbook.unicode_safe()。该函数实际上在 DateFormatter 内部在 strftime 的输出上运行。尝试将所有内容设置为本地,看看是否有帮助:

locale.setlocale(locale.LC_ALL,'en_US')

如果没有,只需定义一个没有 cbook.unicode_safe() 调用的新 DateFormatter 即可:

return cbook.unicode_safe(dt.strftime(fmt))

替换为:

return dt.strftime(fmt)

关于python - 如何为不同语言设置 matplotlib.dates.DateFormatter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14441864/

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