2017-08-03 5 views
0

私は線(各行は線として)を持つプロットを作ろうとしています。彼らの色は違うはずです。トリッキーな部分は、各行に名前を追加する方法です。各行の上に名前を付けたラインプロットを作成する方法は?

たとえば、データが

df<- structure(list(name = structure(c(1L, 2L, 3L, 4L, 7L, 8L, 6L, 
12L, 10L, 5L, 9L, 13L, 11L, 14L), .Label = c("A", "AAD", "ABC", 
"ACF", "ACN", "ADDCR", "ADR", "AFFT", "ARFT", "ASED", "ASEDZ", 
"AXED", "AZEDR", "AZERD"), class = "factor"), X1 = c(1487.2, 
48705.7, 59.4, 1676, 998.6, 35936, 1573.8, 1553.8, 53.9, 56.8, 
2432.2, 431.8, 820.1, 10866.9), X2 = c(3251, 5217.2, 64.2, 45.4, 
65.8, 2937.6, 564, 659.6, NA, 68.9, 654.9, 130, 720.7, 1457.1 
), X3 = c(6364.3, 2752.5, 147.9, 6647.6, 21444.6, 1512.2, 5615, 
2190, 506.3, 2150.3, 273.2, 1922.9, 10762, 12900.8), X4 = c(4942.3, 
3885.8, 248.8, 7643.5, 12741.5, 2141.8, 5407.1, 2486.4, 542.9, 
5058.1, 846.7, 5322, 6887.4, 7000.6), X5 = c(2301.2, 2173.5, 
313.1, 14112.1, 8298.2, 1615.7, 7516.3, 3094.1, 777.8, 12007.9, 
901.4, 9291.9, 4670.1, 3629.5), X6 = c(2779.1, 5564, 211.7, 9172.2, 
9581.5, 2136.2, 7630.7, 3986.6, 440.9, 6898.1, 2280.4, 6311.1, 
4080.4, 4843.9)), .Names = c("name", "X1", "X2", "X3", "X4", 
"X5", "X6"), class = "data.frame", row.names = c(NA, -14L)) 
+1

を下回っている私は伝説が十分でない、理解していませんか? –

+0

@S Riveroもし行数が多すぎると伝説が非常に乱雑であれば、いいえ? – nik

+0

@nik - ...たくさんの行がある場合、名前は乱雑で重複しています。一般的な解決策は、1つのプロットに複数の線をプロットしないことです。 14の別々のデータセットでは、私は今まで賢明な単一のプロットを見たことはないと思う。あなたは 'ggplot2'のような 'ファセット'プロットを容易にすることを検討するかもしれません - http://ggplot2.tidyverse.org/reference/facet_grid.html – thelatemail

答えて

1
library(reshape2) 
library(ggplot2) 
library(directlabels) 

n <- df$name 
df <- as.data.frame(t(df[,-1])) 
colnames(df) <- n 
rownames(df) = NULL 
df$x = row.names(df) 

mlt = melt(df) 

p <- ggplot(data = mlt, aes(x = x, y = value, 
          group = variable, color = variable)) + 
    geom_line() 

direct.label(p, list(last.points, hjust = -0.25)) 
+0

これは既に素晴らしいです。すべての名前が重複しています。とにかく重複を避けるためにそこにいますか? – nik

+0

あなたが持っている行の数に応じて、この 'list(" top.points "、rot = 45、cex = 1)のように変更して、フォントサイズ、名前の場所、回転を再生できます。 – AK88

+0

@nik - 役に立った? – AK88

関連する問題