0

2つのデータセットd1d2csvファイルがあります。各データには6つの列があります。コマンドでそれらを組み合わせて、meltでグラフ化することができましたggplot。グラフが依存する別の変数である列を1つ追加した後、必要なグラフを取得できませんでした。データセットと私のコードのサンプルを提供しました。

使用のデータセットmeltreshapeパッケージ:

initi A   B       C     D    E   L1
0.005 1 23.7      1.0  1.0  24.7 d2
0.005 2 31.2      2.0  2.1  31.2 d2
0.005 3 35.8      3.1  3.2  35.6 d2
 1    1 6.2       1.0  1.0  6.2  d1
 1    2 10.1      2.0  2.1  7.0  d1
 1    3 11.2      3.0  3.5  7.0  d1
 2    1 14.2      8.0 14.3  5.2  d1
 2    2 15.9      7.0 13.0  5.5  d1
 2    3 16.0      6.2 12.4  5.8  d1

とでグラフ化する必要がありAます。値は各グラフを表します。言い換えれば、それは伝説になります。については、との間の結果をプロットする必要があります。最初のグラフが。のときと2番目のグラフがのときの2つのグラフをプロットしたいからです。とのすべてのグラフは、との間にあり、グラフで結合されます。この場合の合計は、1つのグラフに結合された3本の線です。なんとかグラフを作成し、列を追加する前に。今、私は苦労しています。以下は私のコードです:X-axisBY-axisinitid1ABd2initi = 1initi = 2d1d2ABd1d2initi

 dlist <- list(d1 =data1 ,d2 = data2) 
 reshaped_data <- melt(dlist, id.vars = c('initi','A','B','C','D','E')) 
 graph_AB<-ggplot(reshaped_data,aes(x = A, y = B, colour = initi)) +  
     geom_point(size = 5)+
     geom_line() +
     ggtitle("DATA1 vs DATA2") 

上記のコードは私が望むものに近いです...線が奇妙な方法で接続されていることを除いて。「initi」の各パターンを1行で取得する必要があります。さらに、凡例には「initi」の各値が表示されていません

4

2 に答える 2

0
dlist <- list(d1 =data1 ,d2 = data2) 
reshaped_data <- melt(dlist, id.vars = c('initi','A','B','C','D','E')) 
graph_AB<-ggplot(reshaped_data,aes(x = A, y = B, colour = initi)) +  
geom_point(size = 5)+
ggtitle("DATA1 vs DATA2") 
print(graph_AB)

元の質問から geom_line を削除しました!

于 2013-02-20T18:28:45.560 に答える
0

1 の場合と 2 の場合の 2 つのグラフが必要だとinitiしますが、値は 0.005 です。レベルを省略したい場合は、最初にデータをサブセット化する必要があり0.005ます。

ggplot2 では、複数のグラフを「ファセット」と呼びます。ファセットは 1 つの変数に依存するため、必要なコマンドはfacet_wrap(). (facet_gridファセットが 2 つの変数に依存している場合に使用します。) ファセットは因子にある必要があるため、因子であることを確認しますiniti

reshaped_data$initi <- factor(reshaped_data$initi)

+ facet_wrap(~ initi)次に、ggplotに追加します。

編集:グラフが1つだけ必要な場合は、試してください

graph_AB<-ggplot(reshaped_data,aes(x = A, y = B, colour = initi, group = L1)) +  
    geom_point(size = 5)+
    geom_line() +
    ggtitle("DATA1 vs DATA2")

graph_AB

今後は、 を使用してデータを投稿しますdput。たとえば、dput(reshaped_data)それを質問に貼り付けると、出力は次のようになります。

    structure(list(initi = c(0.005, 0.005, 0.005, 1, 1, 1, 2, 2, 
2), A = c(1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L), B = c(23.7, 31.2, 
35.8, 6.2, 10.1, 11.2, 14.2, 15.9, 16), C = c(1, 2, 3.1, 1, 2, 
3, 8, 7, 6.2), D = c(1, 2.1, 3.2, 1, 2.1, 3.5, 14.3, 13, 12.4
), E = c(24.7, 31.2, 35.6, 6.2, 7, 7, 5.2, 5.5, 5.8), L1 = structure(c(2L, 
2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("d1", "d2"), class = "factor")), .Names = c("initi", 
"A", "B", "C", "D", "E", "L1"), class = "data.frame", row.names = c(NA, 
-9L))

誰でも R に貼り付けて簡単に使用できます。

于 2013-02-19T19:41:05.957 に答える