Python 防止在Plotly.py动画中的颜色栏上自动缩放

Python 防止在Plotly.py动画中的颜色栏上自动缩放,python,animation,plotly,Python,Animation,Plotly,我有一个带有颜色比例和相关颜色条的Plotly动画。我想做的是修正颜色条的范围,防止它在每一帧上被重新缩放。我想看到的是,我的数据在哪里“符合”或“不符合预定义的规范”,但这不适用于在每一帧上进行自动缩放。它会对每一帧进行重新缩放,因此颜色条在一帧上可能从-2变为-4,但在下一帧上相同的颜色范围被划分为0到-5 figA = px.scatter(dfAnime, x="Easting", y="Northing", animation_frame=&qu

我有一个带有颜色比例和相关颜色条的Plotly动画。我想做的是修正颜色条的范围,防止它在每一帧上被重新缩放。我想看到的是,我的数据在哪里“符合”或“不符合预定义的规范”,但这不适用于在每一帧上进行自动缩放。它会对每一帧进行重新缩放,因此颜色条在一帧上可能从-2变为-4,但在下一帧上相同的颜色范围被划分为0到-5

figA = px.scatter(dfAnime, x="Easting", y="Northing", animation_frame="shot",
    color='Depth',range_x=[np.min(dfAnime['Easting']),np.max(dfAnime['Easting'])],
    range_y=[np.min(dfAnime['Northing']),np.max(dfAnime['Northing'])],
    color_continuous_scale=[(0,'red'),(0.33,'orange'),(0.58,'green'),(0.83,'orange'),(1,'red')],
    range_color=[0,-6])
    
figA.layout.updatemenus[0].buttons[0].args[1]["frame"]["duration"]=100 # Turns off play/stop button
figA.update_yaxes(
    scaleanchor="x",
    scaleratio=1,
    exponentformat='none')
figA.update_xaxes(
    scaleanchor="x",
    scaleratio=1,
    exponentformat='none')
figA.update_layout(template="plotly_dark",title="Line  "+str(name),autoscale=False)           
#figA.show()
figA.write_html("C:/Users/client1/Desktop/anime.html")
我想将我的范围固定在0到-6之间(这些是我可能看到的极端值)。我以为我已经在上面的代码中完成了,但我假设Autoscale正在覆盖它。

我试过一些例子,我从中得出的结论是
range\u color
工作正常。但是,您对
range\u color
的参数是导致问题的原因。因为它是一个范围,所以以递增的方式定义它是明智的,即,[0,-6]不是一个正确的范围。相反,您应该使用[-6,0]

我可以通过以下方式证实这一点:

import plotly.express as px
dfx = px.data.tips()
在此之后,使用3个范围颜色选项制作散点图:

px.scatter(dfx, x='total_bill', y='tip', color='size', template='plotly_dark').show()
px.scatter(dfx, x='total_bill', y='tip', color='size', template='plotly_dark', range_color=[2,4]).show()
px.scatter(dfx, x='total_bill', y='tip', color='size', template='plotly_dark', range_color=[4,2]).show()

range\u color
的工作原理是将颜色的范围缩小到指定的范围,并将低于/高于该范围的任何点的颜色作为最小/最大颜色值


因此,px无法理解反转范围,您需要手动将其反转。

我尝试了一些示例,从中得出的结论是
range\u color
工作正常。但是,您对
range\u color
的参数是导致问题的原因。因为它是一个范围,所以以递增的方式定义它是明智的,即,[0,-6]不是一个正确的范围。相反,您应该使用[-6,0]

我可以通过以下方式证实这一点:

import plotly.express as px
dfx = px.data.tips()
在此之后,使用3个范围颜色选项制作散点图:

px.scatter(dfx, x='total_bill', y='tip', color='size', template='plotly_dark').show()
px.scatter(dfx, x='total_bill', y='tip', color='size', template='plotly_dark', range_color=[2,4]).show()
px.scatter(dfx, x='total_bill', y='tip', color='size', template='plotly_dark', range_color=[4,2]).show()

range\u color
的工作原理是将颜色的范围缩小到指定的范围,并将低于/高于该范围的任何点的颜色作为最小/最大颜色值


因此,px无法理解反转的范围,您需要手动将其反转。

在该范围中给出,颜色应该可以解决您的问题。你能试着在一个最小的小规模的例子中使用它,看看它是否在那里工作吗?这和我读的文档是一样的,这就是我使用range_颜色的原因。我已尝试将范围更改为在这个特定示例的数据范围内,但自动范围仍然存在。我建议您使用一个小数据集,并尝试使用和不使用
range\u color
。我也会这么做,但我需要时间。这是在范围内的颜色应该解决你的问题。你能试着在一个最小的小规模的例子中使用它,看看它是否在那里工作吗?这和我读的文档是一样的,这就是我使用range_颜色的原因。我已尝试将范围更改为在这个特定示例的数据范围内,但自动范围仍然存在。我建议您使用一个小数据集,并尝试使用和不使用
range\u color
。我也会这样做,但我需要时间。很好,现在工作如预期。有时是最简单的事情导致了阻塞。很好,现在可以按预期工作了。有时是最简单的事情导致了阻塞。