R 如何使独立向量在组中彼此并排出现?

R 如何使独立向量在组中彼此并排出现?,r,ggplot2,R,Ggplot2,我正在学习这个故事。我已经做了一个我几乎满意的情节,还有一个细节需要修正 我的数据如下: gIN <- c("A_1","A_2","A_3","A_4","B_1","B_2","B_3","B_4","B_5","C_1","C_2","C_3") bc <- c(1219.79, 1486.84, 1255.80, 941.87, 588.19, 304.02, 279.71, 373.40, 179.89, 385.02, 218.76, 423.33) bc2 <-

我正在学习这个故事。我已经做了一个我几乎满意的情节,还有一个细节需要修正

我的数据如下:

gIN <- c("A_1","A_2","A_3","A_4","B_1","B_2","B_3","B_4","B_5","C_1","C_2","C_3")
bc <- c(1219.79, 1486.84, 1255.80, 941.87, 588.19, 304.02, 279.71, 373.40, 179.89, 385.02, 218.76, 423.33)
bc2 <- c(319.79, 186.84, 125.80, 94.87, 1008.19, 314.02, 500.71, 600.40, 900.89, 38.02, 1000.76, 500.33)
group <- c("A","A","A","A","B","B","B","B","B","C","C","C")

ex <- data.frame("gIN" = gIN, "bc" = bc, "bc2"=bc2, "group" = group)
绘图:

如您所见,A组看起来不错,因为蓝线和红线是分开的,但当值重叠时(如B组和C组),就不可能清楚地看到数据

有人知道如何更改命令以将每个向量并排放置而不是叠加吗


谢谢。

这里有一个可能的解决方案,包括使用
melt()
重新排列数据,并使用分类x轴分隔“bc”和“bc2”数据类型。另一个好处是绘图代码本身更易于编写

library(ggplot2)
library(reshape2)

mdat = melt(ex, id.vars=c("gIN", "group"), value.vars=c("bc", "bc2"))

head(mdat)
#   gIN group variable   value
# 1 A_1     A       bc 1219.79
# 2 A_2     A       bc 1486.84
# 3 A_3     A       bc 1255.80
# 4 A_4     A       bc  941.87
# 5 B_1     B       bc  588.19
# 6 B_2     B       bc  304.02


p = ggplot(mdat, aes(x=variable, y=value, colour=variable)) + 
    geom_point() + 
    geom_line() + 
    facet_grid(. ~ group)

library(ggplot2)
library(reshape2)

mdat = melt(ex, id.vars=c("gIN", "group"), value.vars=c("bc", "bc2"))

head(mdat)
#   gIN group variable   value
# 1 A_1     A       bc 1219.79
# 2 A_2     A       bc 1486.84
# 3 A_3     A       bc 1255.80
# 4 A_4     A       bc  941.87
# 5 B_1     B       bc  588.19
# 6 B_2     B       bc  304.02


p = ggplot(mdat, aes(x=variable, y=value, colour=variable)) + 
    geom_point() + 
    geom_line() + 
    facet_grid(. ~ group)