Python剧情:其他语言的日期

时间:2015-09-02 19:01:04

标签: python date graph plotly

我在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。 Plotly编码为1月15日,但我需要用西班牙语。

1 个答案:

答案 0 :(得分:0)

这是一个古老的问题,但对于与拉斐尔和我一样存在相同问题的人来说,这可能有用。我遇到了这个问题,我向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轴中使用它,可以在dates内调用x

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

对我有用!我希望它也对您有用。

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

请问我要链接的很多东西,但是对Plotly文档中的methods to update axis进行阅读可能也非常有用,因为您可以通过以下方式更新所需的轴格式:

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

我想归功于Plotly社区用户 empet eliasdabbas