gpt4 book ai didi

r - 如何使独立向量在一组中并排出现?

转载 作者:行者123 更新时间:2023-12-03 15:04:31 25 4
gpt4 key购买 nike

我正在学习 ggplot。我已经制作了一个我几乎满意的情节,并且有一个细节需要修复。

我的数据在这里:

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)

我试图将向量 bc 和 bc2 并排显示,但它们以我构建命令的方式叠加在一起,此处:

ggplot(data=ex) + facet_grid(. ~group, scales="free") + 
geom_line(aes(x=group, y=bc,group=group,colour="bc")) + geom_point(aes(x=group, y=bc,colour="bc")) +
geom_line(aes(x=group, y=bc2,group=group,colour="bc2")) + geom_point(aes(x=group, y=bc2,colour="bc2"))

剧情:

http://i.imgur.com/od6xVRT.png

如您所见,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)

enter image description here

关于r - 如何使独立向量在一组中并排出现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30627403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com