我在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日,但我需要用西班牙语。
答案 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'
然后,您可以尝试使用datetime
和strftime
重新格式化数据。在您的情况下,可能类似于:
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 !