使用带 plotly 的箱线图的次要 y 轴
Secondary y axis using boxplots with plotly
我想使用 plotly 在子图中实现辅助 y 轴。大部分代码是从here.
复制过来的
错误是:'为 plotly.graph_objs.Box 类型的对象指定的 属性 无效:'secondary'。
是因为我在这种情况下不能使用 'go.Box' 吗?
代码如下:
import plotly.graph_objects as go
from plotly.subplots import make_subplots
x = ['day 1', 'day 1','day 1',
'day 2', 'day 2', 'day 2']
fig = make_subplots(specs=[[{"secondary_y": True}]])
# Add traces
fig.add_trace(go.Box(
y=[56.3 , 56.3 , 56.3 , 51. , 49. ],
x=x,
name='Test1',
marker_color='#3D9970',
secondary_y=False,
))
fig.add_trace(go.Box(
y=[1 , 2 , 3 , 2 , 1 ],
x=x,
name='Test2',
marker_color='#3D9970',
secondary_y=True,
))
# Add figure title
fig.update_layout(
title_text="Double Y Axis Example",
boxmode='group'
)
# Set x-axis title
fig.update_xaxes(title_text="xaxis title")
# Set y-axes titles
fig.update_yaxes(title_text="<b>primary</b> yaxis title", secondary_y=False)
fig.update_yaxes(title_text="<b>secondary</b> yaxis title", secondary_y=True)
fig.show()
Secondary_y
是 fig.add_trace()
的 属性 而 不是 go.Box()
。这并不意味着您不能在辅助 y-axis 上使用 go.Box()
。相反。只需在您的设置中将 secondary_y
移到 go.Box
的括号外,您将得到:
剧情:
完整代码:
import plotly.graph_objects as go
from plotly.subplots import make_subplots
x = ['day 1', 'day 1','day 1',
'day 2', 'day 2', 'day 2']
fig = make_subplots(specs=[[{"secondary_y": True}]])
# Add traces
fig.add_trace(go.Box(
y=[56.3 , 56.3 , 56.3 , 51. , 49. ],
x=x,
name='Test1',
marker_color='#3D9970',
),secondary_y=False,)
fig.add_trace(go.Box(
y=[1 , 2 , 3 , 2 , 1 ],
x=x,
name='Test2',
marker_color='#3D9970',
),secondary_y=True,)
# Add figure title
fig.update_layout(
title_text="Double Y Axis Example",
boxmode='group'
)
# Set x-axis title
fig.update_xaxes(title_text="xaxis title")
# Set y-axes titles
fig.update_yaxes(title_text="<b>primary</b> yaxis title", secondary_y=False)
fig.update_yaxes(title_text="<b>secondary</b> yaxis title", secondary_y=True)
fig.show()
我想使用 plotly 在子图中实现辅助 y 轴。大部分代码是从here.
复制过来的错误是:'为 plotly.graph_objs.Box 类型的对象指定的 属性 无效:'secondary'。 是因为我在这种情况下不能使用 'go.Box' 吗?
代码如下:
import plotly.graph_objects as go
from plotly.subplots import make_subplots
x = ['day 1', 'day 1','day 1',
'day 2', 'day 2', 'day 2']
fig = make_subplots(specs=[[{"secondary_y": True}]])
# Add traces
fig.add_trace(go.Box(
y=[56.3 , 56.3 , 56.3 , 51. , 49. ],
x=x,
name='Test1',
marker_color='#3D9970',
secondary_y=False,
))
fig.add_trace(go.Box(
y=[1 , 2 , 3 , 2 , 1 ],
x=x,
name='Test2',
marker_color='#3D9970',
secondary_y=True,
))
# Add figure title
fig.update_layout(
title_text="Double Y Axis Example",
boxmode='group'
)
# Set x-axis title
fig.update_xaxes(title_text="xaxis title")
# Set y-axes titles
fig.update_yaxes(title_text="<b>primary</b> yaxis title", secondary_y=False)
fig.update_yaxes(title_text="<b>secondary</b> yaxis title", secondary_y=True)
fig.show()
Secondary_y
是 fig.add_trace()
的 属性 而 不是 go.Box()
。这并不意味着您不能在辅助 y-axis 上使用 go.Box()
。相反。只需在您的设置中将 secondary_y
移到 go.Box
的括号外,您将得到:
剧情:
完整代码:
import plotly.graph_objects as go
from plotly.subplots import make_subplots
x = ['day 1', 'day 1','day 1',
'day 2', 'day 2', 'day 2']
fig = make_subplots(specs=[[{"secondary_y": True}]])
# Add traces
fig.add_trace(go.Box(
y=[56.3 , 56.3 , 56.3 , 51. , 49. ],
x=x,
name='Test1',
marker_color='#3D9970',
),secondary_y=False,)
fig.add_trace(go.Box(
y=[1 , 2 , 3 , 2 , 1 ],
x=x,
name='Test2',
marker_color='#3D9970',
),secondary_y=True,)
# Add figure title
fig.update_layout(
title_text="Double Y Axis Example",
boxmode='group'
)
# Set x-axis title
fig.update_xaxes(title_text="xaxis title")
# Set y-axes titles
fig.update_yaxes(title_text="<b>primary</b> yaxis title", secondary_y=False)
fig.update_yaxes(title_text="<b>secondary</b> yaxis title", secondary_y=True)
fig.show()