在 plotly 子图中更改单轴
Change single axis in plotly subplots
我使用 plotly.express 在 plotly 中生成了一个图。我使用 pandas.DataFrame 和一列来区分将其放入 facet_row 的两个子图
现在我的数据有非常不同的比例,他们正在操作一个,但是 plotly 为两个 yaxis 分配了相同的范围。
我试图将 'range' 属性分配给 .layout.yaxis1 字典(使用列表),但这会更改上下图的 yaxis。
最小工作示例:
import plotly.express as px
px.bar(pd.DataFrame({'x':[50,60,45,.80],'y': [800,900,1,2],"dif":['a','a','b','b']}),x='x',y='y',facet_row='dif')
如何单独更改第一个轴?
如果您添加 .update_yaxes(matches=None)
,这将打破 Y 轴范围之间的联系。
这是有效的,因为 px.bar()
(和任何其他 px.*()
)return 是一个 Figure
对象,可以通过各种 .update_*()
方法更新。这些方法改变了 return 图形。 px.bar(facet_row="whatever")
默认情况下将 yxaxis*.matches
属性设置为 y1
,因此通过 .update_yaxes()
清除该属性将获得您想要的行为。
之后您可以随意设置范围。
这里有更多信息:https://plot.ly/python/creating-and-updating-figures/
我使用 plotly.express 在 plotly 中生成了一个图。我使用 pandas.DataFrame 和一列来区分将其放入 facet_row 的两个子图 现在我的数据有非常不同的比例,他们正在操作一个,但是 plotly 为两个 yaxis 分配了相同的范围。 我试图将 'range' 属性分配给 .layout.yaxis1 字典(使用列表),但这会更改上下图的 yaxis。 最小工作示例:
import plotly.express as px
px.bar(pd.DataFrame({'x':[50,60,45,.80],'y': [800,900,1,2],"dif":['a','a','b','b']}),x='x',y='y',facet_row='dif')
如何单独更改第一个轴?
如果您添加 .update_yaxes(matches=None)
,这将打破 Y 轴范围之间的联系。
这是有效的,因为 px.bar()
(和任何其他 px.*()
)return 是一个 Figure
对象,可以通过各种 .update_*()
方法更新。这些方法改变了 return 图形。 px.bar(facet_row="whatever")
默认情况下将 yxaxis*.matches
属性设置为 y1
,因此通过 .update_yaxes()
清除该属性将获得您想要的行为。
之后您可以随意设置范围。
这里有更多信息:https://plot.ly/python/creating-and-updating-figures/