我使用plotly.express在plotly中生成了一个图。我使用了pandas.DataFrame和一列来区分将其放入facet_row的两个子图 现在,我的数据使用的比例尺非常不同,但是按图向两个yaxis分配了相同的范围。 我尝试为.layout.yaxis1字典(使用列表)分配一个'range'属性,但是这会更改上下图的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')
如何单独更改第一个轴?
答案 0 :(得分:1)
如果添加.update_yaxes(matches=None)
,将破坏Y轴范围之间的联系。
之所以可行,是因为px.bar()
(以及任何其他px.*()
)返回了Figure
对象,该对象可以通过各种.update_*()
方法进行更新。这些方法会变异并返回图形。默认情况下,px.bar(facet_row="whatever")
将yxaxis*.matches
属性设置为y1
,因此清除它,通过.update_yaxes()
将获得您想要的行为。
之后,您可以根据需要独立设置范围。
此处有更多信息:https://plot.ly/python/creating-and-updating-figures/