imshow 中 Plotly 文本注释的顺序

问题描述 投票:0回答:1

我无法理解文本注释出现在图像数组中的顺序。我有一个 10x28x28 的 numpy 数组,每个子数组的值都是 0.1,0.2 一直到 0.9

from dash import Dash, dcc, html, Input, Output,callback
import plotly.express as px
import numpy as np

X = np.zeros((10,28,28))
y = np.zeros(10,)

for i in range(10):

   X[i,::,::] = i/10
   y[i] = i


fig = px.imshow(X[:, :, :], binary_string=False, zmin=0, zmax=1,
            facet_col=0, aspect = 'auto', facet_col_wrap=5,
            facet_row_spacing = 0, color_continuous_scale='rdylgn')

for n,i in enumerate(fig.layout.annotations):
   i['text']=str(n)

fig.show()

使用所选的配色方案,第 0 个图像应显示为红色,第 9 个图像应显示为绿色。到目前为止一切顺利。然而,当我用数组索引更新注释时,它们的顺序完全混乱。左上角的图像是第 0 个子数组,因此它的文本注释应该为 0。同样,右下角的图像是最后一个子数组,它应该有一个注释 9。 请帮助我理解可以控制文本注释的顺序。

plotly
1个回答
0
投票

在这种情况下,出现这种现象是因为注释和图表的顺序不同。最简单的方法是使用默认创建的字幕作为注释。

fig = px.imshow(X[:, :, :], binary_string=False, zmin=0, zmax=1,
            facet_col=0, aspect = 'auto', facet_col_wrap=5,
            facet_row_spacing = 0, color_continuous_scale='rdylgn')

for n,i in enumerate(fig.layout.annotations):
   i['text']=i.text.split('=')[1]

fig.show()

© www.soinside.com 2019 - 2024. All rights reserved.