在绘图子图中更改单轴

时间:2019-07-24 13:36:28

标签: python plot plotly plotly-python

我使用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')

如何单独更改第一个轴?

1 个答案:

答案 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/