import matplotlib.pyplot as plt
def pairings(col_l,col_r,links):
fig=plt.figure(figsize=(12,10))
#Create vertical spacing and text boxes
step_l=1./len(col_l)
step_r=1./len(col_r)
t_l =[plt.text(0.25, 0.9-step_l*i,str(l),ha='center',va='center',bbox=dict(boxstyle="round",fc='lightsteelblue'),size=30) for i,l in enumerate(col_l)] #left column
t_r =[plt.text(0.75, 0.9-step_r*i,str(r),ha='center',va='center', bbox=dict(boxstyle="round",fc='bisque'),size=30) for i,r in enumerate(col_r)] #right column
#create links
[plt.plot([0.25,0.75],[0.9-step_l*i,0.9-step_r*v],color='slateblue',lw=5) for i,v in enumerate(links) if v!=-1]
#optimize layout
plt.xlim([0,1])
plt.ylim([0,1])
plt.xticks([])
plt.yticks([])
plt.show()
1条答案
按热度按时间qvk1mo1f1#
不确定是否有matplotlib函数可以直接执行此操作,但您可以使用text boxes在几行中创建一个。
col_l
是左列中所有文本的列表。col_r
与右列相同。links
为左列的每个元素显示与之链接的右列元素的索引。-1表示没有链接例如:
退货: