#python #plotly #plotly-python
#python #plotly #plotly-python
Вопрос:
Я хочу построить несколько изображений с imshow
помощью from plotly и присвоить каждому изображению заголовок.
Мой код
fig = px.imshow(numpy.array(img1,img2), color_continuous_scale='gray', facet_col=0, labels={'facet_col' : 'status'})
fig.update_xaxes(showticklabels=False).update_yaxes(showticklabels=False)
fig.show()
и результат выглядит так
Тем не менее, я хотел бы заменить status=0
на original
и status=1
на clean
. Есть ли простой способ добиться этого результата?
Спасибо за любую помощь.
Ответ №1:
Я решил свою проблему с помощью
fig = px.imshow(
numpy.array(img1,img2),
color_continuous_scale='gray',
facet_col=0
)
fig.update_xaxes(showticklabels=False).update_yaxes(showticklabels=False)
for i, label in enumerate(['orignal', 'clean']):
fig.layout.annotations[i]['text'] = label
fig.show()
Было бы неплохо, если бы был более короткий путь, например, передача списка меток непосредственно в imshow
команду. Однако я не нашел никакой возможности сделать это.
Комментарии:
1.Я знаю, что этот вопрос уже решен, но я хотел предложить другой способ решения этой проблемы, который может быть более простым:
fig.for_each_annotation(lambda a: a.update(text=a.text.split("=")[-1]))
источник
Ответ №2:
Согласно документам, добавление параметра ‘x’ со списком имен должно решить эту проблему.
fig = px.imshow(numpy.array(img1,img2),
color_continuous_scale='gray',
facet_col=0,
labels={'facet_col' : 'status'},
x=['Orginal', 'Clean'])
fig.update_xaxes(showticklabels=False).update_yaxes(showticklabels=False)
fig.show()
Комментарии:
1. Параметры x выдают ошибку ValueError: длина вектора x должна соответствовать длине второго измерения матрицы img. Метки в x, похоже, хотят пометить каждый пиксель вдоль второго измерения. Это не заголовок. Но спасибо