解决方案:
如何设置网格线将完全取决于您想要显示的内容,以及在您尝试编辑设置之前如何构建图形。但是为了得到问题中指定的结果,你可以这样做。在
第1步:
为fig['data']中的每个系列编辑fig['data'][series]['x']。在
第2步:
将tickmode和ticktext设置为:go.Layout(xaxis = go.layout.XAxis(tickvals = [some_values]
ticktext = [other_values])
)
结果:
Jupyter笔记本的完整代码:
^{pr2}$
一些重要细节:
1。使用iplot()的灵活性和限制:
这种使用iplot()并编辑所有这些设置的方法有点笨拙,但是它对于数据集中的列/变量的数量非常灵活,并且可以说比手动构建每个跟踪更可取,比如为df中的每一列生成trace1 = go.Scatter()。在
2。为什么要编辑每个序列/轨迹?
如果你想跳过中间部分for ser in range(0,len(fig['data'])):
fig['data'][ser]['x'] = df1['idx'].values.tolist()
fig['data'][ser]['text'] = df1['mth'].values.tolist()
fig['data'][ser]['hoverinfo']='all'
并尝试在整个绘图上直接设置tickvals和ticktext,这不会有任何效果:
我认为这有点奇怪,但我认为这是由iplot()启动的一些底层设置造成的。在
3。仍然缺少一件事:
为了让这个设置正常工作,ticvals和{}的结构分别是[0, 31, 59, 90]和{}。这导致xaxis行悬停文本显示ticvals和{}为空的数据位置:
任何关于如何改进整件事的建议都是非常感谢的。比我自己的解决方案更好的解决方案将立即获得“接受答案”状态!在