【发布时间】:2020-09-03 18:54:37
【问题描述】:
来自plotly doc:
布局 > xaxis > tickvals:
设置此轴上的刻度值 出现。仅当
tickmode设置为“数组”时才有效。与ticktext.布局 > xaxis > ticktext:
设置显示在 通过
tickvals标记位置。仅当设置了tickmode时才有效 到“阵列”。与tickvals一起使用。
例子:
import pandas as pd
import numpy as np
np.random.seed(42)
feature = pd.DataFrame({'ds': pd.date_range('20200101', periods=100*24, freq='H'),
'y': np.random.randint(0,20, 100*24) ,
'yhat': np.random.randint(0,20, 100*24) ,
'price': np.random.choice([6600, 7000, 5500, 7800], 100*24)})
import plotly.graph_objects as go
import plotly.offline as py
import plotly.express as px
from plotly.offline import init_notebook_mode
init_notebook_mode(connected=True)
y = feature.set_index('ds').resample('D')['y'].sum()
fig = go.Figure()
fig.add_trace(go.Scatter(x=y.index, y=y))
x_dates = y.index.to_series().dt.strftime('%Y-%m-%d').sort_values().unique()
layout = dict(
xaxis=dict(
tickmode="array",
tickvals=np.arange(0, x_dates.shape[0],2).astype(int),
ticktext=x_dates[::2],
tickformat='%Y-%m-%d',
tickangle=45,
)
)
fig.update_layout(layout)
fig.show()
结果:
由于 x_dates[::2] 的长度是 50 ,所以 ticknumber 根本不匹配。
怎么解决??
【问题讨论】:
-
我不确定这个问题的意图是什么,但您是说每 100 条数据需要 50 个 x 轴标签吗?
-
@r-beginners 我只想设置 costom xticks 。我知道
nticks在这种情况下可以做类似的事情,但问题是为什么tickmode="array"不起作用。 -
您正在创建一个
layoutdict。但是您没有将其传递给fig对象。
标签: python plotly plotly-python