【问题标题】:Format x-axis with datetime values showing the day names in spanish使用日期时间值格式化 x 轴,以西班牙语显示日期名称
【发布时间】:2021-10-15 01:12:35
【问题描述】:

我有一系列关于天气的数据。在这种情况下只有 14 天的温度。

Plotly 在本机自动管理日期方面做得很好,但我无法更改日期的语言,并且使用 locale.setlocale(locale.LC_TIME, 'es_ES') 设置 python 语言环境不会影响 Plotly 的日期:

为了让它们以西班牙语出现,我必须使用datetime.strftime() 格式化每个日期时间,但随后将它们视为字符串并且会出现非常丑陋的东西:

此外,最后的数据密度较低,第二种方式(使用字符串)会破坏图表,因为它不知道日期之间的实际距离。

我也找不到像第一个示例中那样将 X 轴标签居中的方法。

我想要这样的东西(我画的):

【问题讨论】:

标签: python datetime plotly axis-labels plotly-python


【解决方案1】:

一个类似的问题已发布到 plotly community 并提供了一种处理方法。我已将原始数据转换为 pandas 日期格式,然后更改了语言环境。我也有不同的语言环境,所以我创建了一个代码来尝试一下。它以西班牙语正确显示。我想发布结果图,但有些文本是乱码,所以我不会发布图像。 x轴向边的刻度可以通过刻度的角度来设置,如代码所示。

import plotly.express as px
import pandas as pd
import numpy as np
from datetime import datetime
import locale

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

df = pd.DataFrame({'date':pd.date_range('2021-09-01','2021-09-30'), 'value':np.random.randint(0,10,(30))})
es_date =  pd.to_datetime(df['date'])
es_date = [d.strftime('%d %A') for d in es_date]
df['es_date'] = es_date

fig = px.line(df[:10], x='es_date', y="value")

fig.update_xaxes(tickangle=0)
fig.show()

【讨论】:

  • 是的,我看到了 plotly 社区的那个帖子,我理解你的例子,但这不是我需要的。我需要绘制所有日期时间,但只在 x 轴上显示一天的一个标签。例如:名为“Lunes 07”的一天中的 24 小时值必须在所有时段和一次显示“Lunes 07”,不能显示“Lunes 07, Lunes 07, Lunes 07, Lunes 07 ...”
  • 你的问题有两个要求:第一个是x轴刻度用西班牙语写。这已经实现了吗?第二个是让刻度线平行于 x 轴。你做到了吗?我们将日期格式限制为星期几和星期几,因此根据您要显示的数据量,星期几和星期几将重复,因为月份和年份被省略。 cmets中说该符号应仅显示一次,但请更新问题或指出问题。
猜你喜欢
  • 1970-01-01
  • 2016-05-15
  • 2017-08-03
  • 2020-02-24
  • 2020-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多