4

ggplots2 を使用してプロットするための長さが等しくない 2 つのデータセットがあります。

Data A;

column x column y
0.23     1.54    
0.44     1.46
0.69     1.37
0.70     1.21
0.75     1.01
0.88     0.91 

Data B:

column x column y
0.13     1.24    
0.34     1.16
0.49     1.07
0.54     0.99
0.69     1.01

これら2つのデータセットを一緒にプロットするためにggplot2でコードを書く方法は確かです。どちらの場合も、プロットは x 軸 = 列 x および y 軸 = 列 y として表示されます。誰か助けてくれませんか?

ジェームズ

4

3 に答える 3

5

データセット A と B を data.frame として持っているとします。

A <- data.frame(x=1:5, y=11:15)
B <- data.frame(x=1:10, y=20:11)

それらを一緒に結合する必要があります:

df <- rbind(A, B) # Join A and B together.
df
    x  y
1   1 11
2   2 12
3   3 13
4   4 14
5   5 15
6   1 20
7   2 19
8   3 18
9   4 17
10  5 16
11  6 15
12  7 14
13  8 13
14  9 12
15 10 11

次に、それをプロットできます。

ggplot(data=df, aes(x=x, y=y)) + geom_point()

データセット A と B のポイントを色で区別したい場合:

df$dataset <- c(rep("A", nrow(A)), rep("B", nrow(B)))
df
    x  y dataset
1   1 11       A
2   2 12       A
3   3 13       A
4   4 14       A
5   5 15       A
6   1 20       B
7   2 19       B
8   3 18       B
9   4 17       B
10  5 16       B
11  6 15       B
12  7 14       B
13  8 13       B
14  9 12       B
15 10 11       B

ggplot(data=df, aes(x=x, y=y, col=dataset)) + geom_point()

データセット A と B のポイントを色とサイズで区別し、軸ラベルを変更する場合:

ggplot(data=df, aes(x=x, y=y, col=dataset, size=dataset)) + geom_point() +
scale_color_manual(name="Dataset", labels = c("Data A","Data B"), values=c("red", "blue")) + 
scale_size_manual(name="Dataset", labels = c("Data A","Data B"), values=c(10, 5)) + 
xlab("xxxx") + ylab("yyyy")

チュートリアルを参照するか、Google を使用してください :)。

于 2013-03-22T08:49:23.213 に答える
3

データポイント(まばらな)と理論曲線からの線(多くのデータポイントがある)をプロットしようとすると、これが常に発生することを私は知っています

この場合、ggplot のジオメトリの各部分に個別に異なる美的マッピングを与えることができます。

例 [最良の例を最初にするためにここで編集]

ggplot() +
  geom_point(data = df_A, aes(x, y)) + 
  geom_line(data = df_B, aes(x, y), color = "red") +
  theme_minimal() 

また

ggplot() +
  with(df_A, geom_point(aes(x, y))) + 
  with(df_B, geom_line(aes(x, y)), color = "red") +
  theme_minimal() 
于 2020-06-18T17:49:15.000 に答える
1

1 つのオプションは、データを 1 つの data.frame に入れることです。data.frames の名前がand であると仮定して、 ldply()fromを使用した例を次に示します。plyr()d1d2

library(plyr)
> d3 <- ldply(list(d1 = d2, d2 = d2))
> rbind(head(d3,2), tail(d3,2))
   .id column.x column.y
1   d1     0.13     1.24
2   d1     0.34     1.16
9   d2     0.54     0.99
10  d2     0.69     1.01

または、プロット時に異なるデータセットを異なるジオメトリに渡すだけです。このようなもの:

ggplot() +
  geom_point(data = d1, aes(column.x, column.y)) +
  geom_point(data = d2, aes(column.x, column.y), colour = "red")
于 2013-03-22T03:44:32.560 に答える