GGPLOT2:如何在ggplot()脚本中绘制特定选择

3

这是一个名为P的大型数据集的一部分,其中有10个特许经营者(CS)拥有不同的商店(SHP),具有几个数值。该数据集按周(WK)2到52排序列出。它创建了一个大文件。仅查看前6行:

WK,MND,CS,SHP,RevCY,RevLY,TCY,TLY,ACY,ALY
=========================================
2,JAN,AAA,AAA Shop 1,16834,16686,1837,1983,2853,3002 

2,JAN,AAA,AAA Shop 2,95919,114696,9742,11813,20521,24673

2,JAN,BBB, BBB shop 1,93428,92212,7647,7857,18436,17984

2,JAN,BBB, BBB Shop 2,30600,35831,2748,3063,5579,6408

2,JAN,CCC, CCC Shop 1, 65229,78761,6074,7172,13852,16706

2,JAN,CCC, CCC Shop 2,465,754,73,118,92,162

我在绘制与SHP==AAA相关的值时遇到了困难。

p <- ggplot(P, aes(WK, RevCY)) + geom_bar(stat="identity")

这将绘制所有商店和所有 CS。因此,根本问题是要了解如何仅绘制来自CS=AAA的商店 (SHP)。假设在 ggplot() + geom_bar(stat="identity") 代码中,x轴为周数 (WK),y轴为RevCY
p <- ggplot(P[P$CS=="AAA"], aes(WK, RevCY)) + geom_bar(stat="identity")

所以不需要创建各种子集,直接进入ggplot()代码。 希望我的问题已经清晰明了。

1
顺便提一下,t 不是一个很好的 data.frame 名称,因为它也是函数 t()(矩阵转置)的名称。 - redmode
@redmode 收到。我将它重命名为 P。你还能帮我吗? - ad_s
Sven Hohenstein的回答不是有帮助吗? - redmode
2个回答

9

这对您有帮助吗?

ggplot(t, aes(WK, RevCY)) + geom_bar(data=subset(t,CS=="AAA"),stat="identity")

非常感谢。我会用这个练习。谢谢。 - ad_s

4

如果您想从数据框中提取特定的行,需要使用以下代码:

t[t$CS == "AAA", ]

使用t[t$CS == "AAA"]而不是t[,"AAA"]来选择列。后一种语法用于选择行。

绘图命令:

p <- ggplot(t[t$CS == "AAA", ], aes(WK, RevCY)) + geom_bar(stat = "identity")

我想您希望添加一些参数以生成每个 WK 的多个条形图,而不是单个堆叠条形图:

p <- ggplot(t[t$CS == "AAA", ], aes(as.factor(WK), RevCY)) + 
       geom_bar(stat = "identity", aes(group = RevCY), position = "dodge")

谢谢。但如果我想选择2个或更多的CS怎么办?以下代码不起作用:> ggplot(t[t$CS == "AAA"& "BBB", ], aes(WK, RevCY)) + geom_bar(stat = "identity", aes(group = RevCY), position = "dodge") - ad_s
如果你想比较一个变量和多个值,你必须使用%in%。针对你的例子:t$CS %in% c("AAA", "BBB") - Sven Hohenstein
如果我输入:>ggplot(t[t$CS %in% C("AAA","BBB"), ], aes(WK, RevCY)) + geom_bar(stat="identity", aes(group=RevCY), position="dodge") 我会收到一个错误信息:"Error in C("AAA", "BBB") : object not interpretable as a factor"。 - ad_s
@user3214508,为什么你在我的代码中使用了大写的 C,而实际上应该是小写的 c - Sven Hohenstein
尝试使用 ggplot(t[t$CS %in% c("AAA","BBB"), ], aes(WK, RevCY)) + geom_bar(stat="identity", aes(group=RevCY), position="dodge") - Sven Hohenstein
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接