【发布时间】:2022-11-09 04:26:35
【问题描述】:
我尝试了很多东西,但是 plotly 上的 X 轴,它包含熊猫数据框中 HH:MM:SS 格式的时间不想改变。
我尝试了以下方法:
- 试图将数据框列的数据类型更改为 pydatetime
- 将 pydates 添加到列表并应用 strftime 和 '%Y-%m-%d %H:%M:%S'(稍后转换)和 '%H:%M:%S'
- 在 fig.update_xaxes 中尝试了带有 tickformat="%H:%M" 的基本内容 - 方法
- 和 tickformat='%H:%M' in fig.update_layout - xaxis 参数的方法(也带有字典)
- 也试过这个:fig.layout['xaxis_tickformat'] = "%H:%M"
- 还尝试使用 "%H:%M" 将日期应用于 strftime,但这些值是一种聚合类型(或仅选择特定分钟的一个值)
结果会发生变化:有时所有数据点都会消失(它们位于左角或右角),如果它们没有消失,则 x 轴会显示 15:23:01 的值。
下面是我的方法的代码 sn-p:
pd.options.plotting.backend = "plotly"
dates = pd.to_datetime(dataframe.Time, format='%H:%M:%S')
dates = dates.dt.to_pydatetime()
datelist = []
for date in dates:
date = datetime.datetime.strftime(date, '%Y-%m-%d %H:%M:%S')
datelist.append(date)
# dates['Time'] = pd.Series(dates, dtype=object)
# dates = dates.apply(lambda x: x.strftime('%H:%M:%S'))
print(dataframe.Time)
print(dates)
df = dataframe
# also tried here with x = dataframe.Time with same results
fig = px.line(df, x=datelist, y=["Foo1", "Foo2"], title='Foo')
# changing Y-Axis ticks to 10 minutes
fig.update_xaxes(tickangle=45,
# type="date",
tickmode='array',
tickformat="%H:%M",
tickvals=df["Time"][0::600])
fig.update_layout(
title="Foo", title_x=0.5,
xaxis_title="Time",
xaxis=dict(
tickformat='%H:%M'
),
# xaxis_tickformat = "%H:%M",
yaxis_title="<i>g</i>",
legend_title="Sensor",
font=dict(
family="Courier New, monospace",
size=50,
color="RebeccaPurple"
)
)
# fig.layout['xaxis_tickformat'] = "%H:%M"
fig.show()
我希望你能帮助我,因为我按照情节网站上的说明进行了搜索,但情节的东西似乎很少见。
在此先感谢,如果需要,我可以提供更多信息。
【问题讨论】: