2016-09-06 11 views
0

このデータフレームはmydfです。私は以下のようにこのデータをプロットしようとしていますが、(すべてではなく)1.2以上の汚染を持つサンプルだけにラベルを付けることを望みます。また、1.2の汚染マージンに水平線を追加したい。 Rでこれをどうやって行うのですか?サンプルの条件付きラベル付けをggplotに追加する方法

mydf <- structure(list(sample.names = structure(c(2L, 3L, 4L, 5L, 6L, 
    1L, 7L, 8L, 9L, 10L), .Label = c("LPH-001-1", "LPH-001-10", "LPH-001-10_AK1", 
    "LPH-001-10_AK2", "LPH-001-10_PD", "LPH-001-10_SCC", "LPH-001-13", 
    "LPH-001-13_AK1", "LPH-001-13_AK2", "LPH-001-13_PD"), class = "factor"), 
     contamination = structure(c(5L, 1L, 4L, 2L, 2L, 4L, 3L, 8L, 
     7L, 6L), .Label = c("0.7", "1.0", "1.1", "1.2", "1.3", "1.4", 
     "1.7", "2.0"), class = "factor")), .Names = c("sample.names", 
    "contamination"), row.names = c(NA, -10L), class = "data.frame") 

cc<- ggplot(mydf, aes(x=sample.names, y=contamination, label= mydf[,"sample.names"])) + geom_point() 

     cc + geom_text() 
+0

プロットする前にデータをクリーンアップして、要因が要因として保存されている理由を教えてください。 – zx8754

答えて

2

私はその後、それぞれの文字や数値ベクトルへsample.namescontaminationを変換contamination <= 1.2とサンプルのプレースホルダを持つ名前の新しいベクトルになるだろう。 geom_hlineは水平線を追加できます。

mydf$contamination <- as.numeric(as.character(mydf$contamination)) 
mydf$sample.names <- as.character(mydf$sample.names) 
mydf$sample.names1.2 <- ifelse(mydf$contamination > 1.2, mydf$sample.names, "") 

ggplot(mydf, aes(x=sample.names, y=contamination, label = sample.names1.2)) + 
    geom_point() + 
    geom_text() + 
    geom_hline(yintercept = 1.2) 
関連する問題