我用 Python 创建了一个简单的 Plotly 图表,并且可以非常轻松地更改模式栏选项。但是,当我尝试将相同的图表发布到 Chart-Studio 时,并非所有模式栏配置都有效。有任何想法吗?
这是代码:
import pandas as pd
import numpy as np
import plotly.graph_objects as go
df = pd.DataFrame({'a':[2,4,6,8,10],'b':[3,6,9,12,15]})
fig = go.Figure()
fig.add_trace(go.Scatter(x=df.index, y=df['a'], mode='lines', name='a', line=dict(color='dodgerblue', dash='solid')))
fig.add_trace(go.Scatter(x=df.index, y=df['b'], mode='lines', name='b', line=dict(color='lightsalmon', dash='dash')))
fig.update_layout(
title='a and b',
autosize=False,
width=500,
height=500,
newshape=dict(line_color='mediumaquamarine', line_width=2, opacity=1)
)
config = {
'modeBarButtonsToAdd' : ['drawline', 'drawopenpath', 'drawrect', 'eraseshape'],
'displaylogo' : False
}
fig.show(config=config)
Run Code Online (Sandbox Code Playgroud)
出现的图形已删除徽标,并且模式栏上的附加按钮按其应有的方式显示...
但是,如果我尝试将其发布到 Chart-Studio:
import chart_studio.plotly as py
import chart_studio
chart_studio.tools.set_credentials_file(username='xxxxx', api_key='#####')
py.plot(fig, filename='a and b', auto_open=False, config=config) …Run Code Online (Sandbox Code Playgroud) 我有一个布尔时间序列,我想用它来确定应该着色的绘图部分。
目前我有:
ax1.fill_between(data.index, r_min, r_max, where=data['USREC']==True, alpha=0.2)
Run Code Online (Sandbox Code Playgroud)
其中,r_min和r_max只是 y 轴的最小值和最大值。
但是 fill_between 并没有一直填充到绘图的顶部和底部,因为,所以我想改用axvspan()。
鉴于 axvspan 只需要坐标,有没有什么简单的方法可以做到这一点?所以我能想到的唯一方法是将所有相邻且为 True 的日期分组,然后取这些日期中的第一个和最后一个并将它们传递给 axvspan。
谢谢