Python plotly : Dates in other languages

标签 python date graph plotly

我已经在绘图中插入了一个数据集,以便绘制时间序列图。 Plotly 将其充分转换为日期时间对象,但显示是英语,我需要它是西类牙语。我可以这样做吗?怎么办?

代码如下:

trace1 = Scatter(
  x=['2015-01-01', '2015-01-02'],
  y=['14.7414', '14.7414'],
  name='Precio del dlar',
  error_y=ErrorY(
    color='rgb(0,116,217)',
    thickness=1, width=1
  ),
  error_x=ErrorX(
    copy_ystyle=True
  ),
  marker=Marker(
    color='rgb(0,116,217)',
    size=8,
    symbol='circle'
  ),
  line=Line(
    color='rgb(0,116,217)',
    width=2
  ),
  xsrc='rafaeles:2294:78082d',
  ysrc='rafaeles:2294:7b41b5'
) 

我插入的日期格式是x。计划将其编码为 1 月 15 日,但我需要使用西类牙语。

最佳答案

这是一个老问题,但也许对于与拉斐尔和我有同样问题的人来说可能有用。我遇到了这个问题,我向 Plotly 社区询问 how I can change the date language答案非常有帮助。

请注意,我编辑了您的问题,将您的代码插入到代码块中,以方便阅读。

首先尝试使用 Python 的 locale 模块检查当前的语言环境设置:

import locale
locale.getlocale()

如果您得到的内容与您想要使用的不同,您可以使用 locale.setlocale() 设置您想要的日期和时间。例如:

locale.setlocale(locale.LC_TIME, 'es_ES')

您可以使用 datetime 模块来测试这个新的语言环境是否正常工作,如下所示:

import datetime
today = datetime.datetime.now()

datetime.datetime(2020, 2, 14, 10, 33, 56, 487228)

today.strftime('%A %d de %B, %Y')

'viernes 14 de febrero, 2020'

然后您可以尝试使用 datetimestrftime 重新格式化数据。在您的情况下,它可能类似于:

dates = [datetime.datetime(2015, 1, 1).strftime('%A %d de %B, %Y'),
         datetime.datetime(2015, 1, 2).strftime('%A %d de %B, %Y')]

这对我在 iPython 上有效:

In [1]: import locale                                                                                                                                  

In [2]: locale.setlocale(locale.LC_TIME, "es_ES.utf8")                                                                                                 
Out[2]: 'es_ES.utf8'

In [3]: import datetime                                                                                                                                

In [4]: dates = [datetime.datetime(2015, 1, 1).strftime('%A %d de %B, %Y'), 
   ...:          datetime.datetime(2015, 1, 2).strftime('%A %d de %B, %Y')]                                                                            

In [5]: dates                                                                                                                                          
Out[5]: ['jueves 01 de enero, 2015', 'viernes 02 de enero, 2015']

如果你想在x轴上使用它,你可以在x内部调用dates:

trace1 = Scatter(
  x=dates,
  y=['14.7414', '14.7414'],
  ...
)

这对我有用!我希望它也适合您。

如果您需要不同的日期格式,我建议您阅读documentation about date-time microformats of D3 。我还建议您阅读主题How to change date language?我打开了 Plotly 社区论坛,因为答案非常有用,并且帮助我解决了我的问题并回答了这个问题。您还可以查看this notebook在线程中共享,其中回答我的一位用户展示了如果您使用 pandas 数据框如何解决问题。

请原谅我链接的很多内容,但阅读 methods to update axis 也可能非常有用。在 Plotly 文档中,因为您可以使用以下方式更新所需轴的格式:

fig.update_xaxes(tickformat='%d-%b-%Y')

我要感谢 Plotly 社区的用户 empeteliasdabbas 的回答!

关于Python plotly : Dates in other languages,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32361113/

相关文章:

python - 将随机样本列添加到数据框中

c++ - 计算有向图中的欧拉路径数?

java - Android Graphview - 附加数据

python - 我可以使用 python 将 xlsb 文件转换为 xlsx 吗?

Python转换温度报错

python - 根据多个 groupby 条件创建新列

c - 无法将 12 小时格式转换为 24 小时格式

linux - 如何在 linux shell 脚本中计算日期 -N?

javascript - Angular js - isDate() 将不起作用

java - 在二维图中找到最接近给定点的坐标的算法