如何在seaborn中向replot添加文本列表?

2024-04-28 17:39:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在seaborn制作的relplot上为选定的标记子集添加标签。我对标记所有标记都没有问题,但当我使用选定的标签创建数据框时,它不会出现。我做错了什么

dogma_label = dogma.loc[(dogma["logFC"] >= 2.5) | (dogma["logFC"] <= -2.5)]
fig = plt.figure(figsize=(10,10))
sns.set(font_scale = 1.2)
sns.set_style("white")
p1=sns.relplot(
    data=dogma,
    x="N: Welch's T-test Difference NODAL_GFP", y='logFC',
    hue="Protein -log 10(p-value)", size="RNA -log10 (p-value)",
    palette=cmap, sizes=(20, 200))
ax = p1.axes[0,0]
ax.set_xlabel('$ Protein Fold Change Log_2(NODAL/GFP)$',fontsize=16,labelpad=25)
ax.set_ylabel('$ RNA Fold Change Log_2(NODAL/GFP)$',fontsize=16,labelpad=25)
plt.tick_params(labelsize=16)

for idx,row in dogma_label.iterrows():
    x = row["N: Welch's T-test Difference NODAL_GFP"]
    y = row['logFC']
    text = row['Gene']
    ax.text(x+.05,y,text, horizontalalignment='left') 

    # plt.savefig("TYK_CM_Correlation.eps", bbox_inches="tight",dpi=600)

电流输出:

Relplot not producing labels

替代代码也不起作用:

for line in range(0,dogma_label.shape[0]):
p1.text(dogma_label["N: Welch's T-test Difference NODAL_GFP"][line]+0.2, dogma_label["logFC"][line],
         dogma_label.Gene[line], horizontalalignment='left', size='medium', color='black', weight='semibold')

最终数字,解决方案作者:thejahcoop

Finall Figure

代码解决方案

   dogma['abs'] = dogma["N: Welch's T-test Difference NODAL_GFP"].abs()
dogma.sort_values(by=['abs'],inplace=True,ascending=False,ignore_index=True)
fig = plt.figure(figsize=(10,10))
sns.set(font_scale = 1.2)
sns.set_style("white")
p1=sns.scatterplot(
    data=dogma,
    x="N: Welch's T-test Difference NODAL_GFP", y='table.logFC',
    hue="Protein -log 10(p-value)", size="RNA -log10 (p-value)",
    palette=cmap, sizes=(20, 200))
plt.xlabel('$ Protein Fold Change Log_2(NODAL/GFP)$',fontsize=16,labelpad=20)
plt.ylabel('$ RNA Fold Change Log_2(NODAL/GFP)$',fontsize=16,labelpad=20)
plt.tick_params(labelsize=16)
n=0.1
for line in range(0,15):
    n=n+0.2
    p1.text(dogma["N: Welch's T-test Difference NODAL_GFP"][line]+0.2, dogma["table.logFC"][line]-n,
             dogma.Gene[line], horizontalalignment='center', size='small', color='black') 
    
plt.savefig("A2780_Lysate_Correlation.eps", bbox_inches="tight",dpi=600 )

Tags: texttestlinepltlabelsetsnsp1
1条回答
网友
1楼 · 发布于 2024-04-28 17:39:56
dogma['abs'] = dogma['logFC'].abs()
dogma.sort_values(by=['abs'],inplace=True,ascending=False,ignore_index=True)
fig = plt.figure(figsize=(10,10))
sns.set(font_scale = 1.2)
sns.set_style("white")
p1=sns.scatterplot(
    data=dogma,
    x="N: Welch's T-test Difference NODAL_GFP", y='logFC',
    hue="Protein -log 10(p-value)", size="RNA -log10 (p-value)",
    palette=cmap, sizes=(20, 200))
ax.set_xlabel('$ Protein Fold Change Log_2(NODAL/GFP)$',fontsize=16,labelpad=25)
ax.set_ylabel('$ RNA Fold Change Log_2(NODAL/GFP)$',fontsize=16,labelpad=25)
plt.tick_params(labelsize=16)
for line in range(0,14):
    p1.text(dogma["N: Welch's T-test Difference NODAL_GFP"][line]+0.2, dogma["logFC"][line],
             dogma.Gene[line], horizontalalignment='left', size='medium', color='black', weight='semibold')

相关问题 更多 >