0

このようなフォレストプロットを作成しようとしています -->

図1

ここに画像の説明を入力

図の右側に示すように、凡例を作成するのに苦労しています。

私のデータは次のとおりです。

Gene_ID HR      low     high
Gene_1  0.83    0.78    0.89
Gene_2  0.61    0.51    0.74
Gene_3  0.85    0.8     0.9
Gene_4  0.77    0.7     0.84
Gene_5  0.75    0.68    0.83
Gene_6  0.81    0.76    0.87
Gene_7  0.85    0.81    0.9
Gene_8  0.8     0.74    0.86
Gene_9  0.82    0.76    0.88
Gene_10 0.8     0.73    0.87

図1の右側に示すように、プロットは取得できますが、凡例を取得できません。

私のコードは次のとおりです。

library(forestplot)
genes_df <- read.table("data.txt", header=T, sep="\t")

data <- structure(list(HR  = c(NA,genes_df$HR), 
                       low = c(NA,genes_df$low),
                       high = c(NA,genes_df$high)),
                       .Names = c("HR", "low", "high"), 
                       row.names = c(NA,-11L), 
                       class = "data.frame")

labels <- cbind(c("Gene_ID","Gene_1","Gene_2","Gene_3","Gene_4","Gene_5","Gene_6","Gene_7","Gene_8","Gene_9","Gene_10"),
                   c("HR","0.83","0.61","0.85","0.77","0.75","0.81","0.85","0.8","0.82","0.8"),
                   c("low","0.78","0.51","0.8","0.7","0.68","0.76","0.81","0.74","0.76","0.73"),
                   c("high","0.89","0.74","0.9","0.84","0.83","0.87","0.9","0.86","0.88","0.87"))

print("....Creating the plot....")                 
jpeg(filename="Hazard_ratio_plot.jpg",units="cm",width=20,height=17, res=800)
forestplot(labels, 
           data,new_page = TRUE,
           boxsize = .25,
           zero = 0.707,
           ci.vertices = TRUE,
           ci.vertices.height = 0.25,
           xlog=TRUE, 
           cex = 0.1,
           graph.pos = 2,
           lwd.zero = gpar(lty=1, alpha = 1),
           lineheight = "auto",
           title = "Hazard ratio plot",
           txt_gp = fpTxtGp(label=gpar(fontfamily="Calibri")),
           col = fpColors(box="blue",line="black",zero = "black"),
           xlab="Hazard ratio")
dev.off()

私の y 軸ラベルには、列、Gene_ID、HR、low および high のすべての値があります。引数graph.pos = 2を使用すると、y 軸のラベル (HR、低、高) を分離してプロットの右側に移動し、プロットの凡例のように見せることができます。

ただし、引数「凡例」で凡例を取得するために同じことを試みると、次のエラーが発生します。

fn.legend[[i]] のエラー: タイプ 'closure' のオブジェクトはサブセット化できません

このエラーの意味がわかりません。

4

1 に答える 1