如何在 Python Plotly 中显示时间戳 x 轴
问题描述
我想绘制
但是,x-index 显示数字.相反,我希望在 x 轴上有一个时间戳(月+年).
编辑添加流动的
fig.update_layout(yaxis=dict(title=''),xaxis=dict(标题='时间戳',tickformat = '%Y-%b',))
给
这似乎不是从数据索引中读取 x 轴.
解决方案如果你想使用 bar,在我看来你需要找到一个好的解决方法.你有没有考虑过使用Heatmap
?
将熊猫导入为 pd导入 plotly.graph_objsdf = pd.read_csv("availability3.txt",parse_dates=["时间戳"]).drop("未命名:0", axis=1)# 你想让变量作为列df = pd.pivot_table(df,index="时间戳",列=变量",值=值")fig = go.Figure()fig.add_trace(去.热图(z=df.values.T,x=df.index,y=df.columns,colorscale='RdYlGn',xgap=1,ygap=2))图.show()
I want to plot this data to evaluate data availability. I used the following plotting code in Plotly.
import datetime
import plotly.express as px
fig = px.bar(df, x=df.index, y="variable", color='value', orientation="h",
hover_data=[df.index],
height=350,
color_continuous_scale=['firebrick', '#2ca02c'],
title='',
template='plotly_white',
)
The result is just like what I want below.
But, the x-index show numbers. I want a timestamp (month+year) on the x-axis, instead.
Edit Adding the fllowing
fig.update_layout(yaxis=dict(title=''),
xaxis=dict(
title='Timestamp',
tickformat = '%Y-%b',
)
)
Gives
which seems that the x-axis is not read from the data index.
解决方案If you want to use bars it seems to me that you need to find a nice workaround. Have you considered to use Heatmap
?
import pandas as pd
import plotly.graph_objs as go
df = pd.read_csv("availability3.txt",
parse_dates=["Timestamp"])
.drop("Unnamed: 0", axis=1)
# you want to have variable as columns
df = pd.pivot_table(df,
index="Timestamp",
columns="variable",
values="value")
fig = go.Figure()
fig.add_trace(
go.Heatmap(
z=df.values.T,
x=df.index,
y=df.columns,
colorscale='RdYlGn',
xgap=1,
ygap=2)
)
fig.show()
相关文章