我正在努力把一个十字符号在某些位置的每个子情节的情节在Python中。我有2个子情节,在每一个,我想在某些位置的十字如下。
subplot_1和2处的十字符号位置已贴附。
import numpy as np
import plotly.graph_objs as go
import plotly.figure_factory as ff
from plotly.subplots import make_subplots
import string
#Define data for heatmap
N=5
x = np.array([10*k for k in range(N)])
y = np.linspace(0, 2, N)
z1 = np.random.randint(5,15, (N,N))
z2 = np.random.randint(10,27, (N,N))
mytext = np.array(list(string.ascii_uppercase))[:25].reshape(N,N)
fig1 = ff.create_annotated_heatmap(z1, x.tolist(), y.tolist(), colorscale='matter')
fig2 = ff.create_annotated_heatmap(z2, x.tolist(), y.tolist(), annotation_text=mytext, colorscale='Viridis')
fig = make_subplots(
rows=1, cols=2,
horizontal_spacing=0.05,
)
fig.add_trace(fig1.data[0], 1, 1)
fig.add_trace(fig2.data[0], 1, 2)
annot1 = list(fig1.layout.annotations)
annot2 = list(fig2.layout.annotations)
for k in range(len(annot2)):
annot2[k]['xref'] = 'x2'
annot2[k]['yref'] = 'y2'
fig.update_layout(annotations=annot1+annot2)
1条答案
按热度按时间jjhzyzn01#
处理这个问题有两种方法:第一个是使用散点图的线条模式,第二个是添加形状。在散点图的线条模式中,真实的的起始位置是-0.5,因此热图和交叉线没有对齐。所以我选择添加一个图形。另外,我现在可以在不使用figure_factory的情况下进行注解,因此我将使用一个graph对象来构造图表。配置是一个热图与两个形状的组合,其中y轴和x轴的比例发生了变化。