R qplot条件因子

R qplot条件因子,r,bar-chart,ggplot2,R,Bar Chart,Ggplot2,使用此数据帧,df: bat.condition bat.group bat.money 1 safe 2825.882 2 safe 2931.875 1 glsa 6975.882 2 glsa 5407.500 1 studyabroad 3084.706 2

使用此数据帧,
df

bat.condition bat.group      bat.money
1              safe          2825.882
2              safe          2931.875
1              glsa          6975.882
2              glsa          5407.500
1              studyabroad   3084.706
2              studyabroad   2253.750 
1              jcc           4134.706
2              jcc           5550.625
1              eagg          4578.824
2              eagg          5456.250
我想画一个条形图,x轴上有组,y轴上有钱。此外,我希望根据钢筋出现的条件对钢筋进行分离/分解。到目前为止,我已经使用了以下代码,它几乎是理想的。我有一组因素的酒吧,我只想进一步因素的条件

qplot(factor(bat.group), data = df, geom = "bar", fill = bat.group, 
      weight = bat.money, position = "dodge")
这产生了这里看到的图像


这里有一个解决方案,我认为它符合您的要求。我使用了
ggplot
语法而不是
qplot
。我使用了
facet\u wrap
按bat.condition分隔数据。此外,
geom_barplot
需要参数
stat=“identity”
,否则它将尝试存储您的数据

# Using ggplot2 version 0.9.2.1
library(ggplot2)

dat = read.table(header=TRUE, 
text="bat.condition bat.group      bat.money
1              safe          2825.882
2              safe          2931.875
1              glsa          6975.882
2              glsa          5407.500
1              studyabroad   3084.706
2              studyabroad   2253.750 
1              jcc           4134.706
2              jcc           5550.625
1              eagg          4578.824
2              eagg          5456.250")


p1 = ggplot(data=dat, aes(x=bat.group, y=bat.money, fill=bat.group)) +
     geom_bar(stat="identity") +
     facet_wrap(~ bat.condition)

ggsave(plot=p1, filename="plot_1.png", height=5, width=8)

编辑: 使用
fill=bat.condition
并添加
position=“dodge”
将生成一个与您在评论中链接到的图形类似的图形

p2 = ggplot(data=dat, aes(x=bat.group, y=bat.money, fill=factor(bat.condition)))+
     geom_bar(position="dodge")

ggsave(plot=p2, filename="plot_2.png", height=4, width=6)

您通常可以通过
交互功能获得分组:

 qplot(interaction(bat.condition, bat.group), data = df, geom = "bar", fill = bat.group, 
      weight = bat.money, position = "dodge")

您可以向数据帧添加新变量,并使用如下方面:

df$factor = factor(df$bat.group)
qplot(as.character(bat.condition), data = df, geom = "bar", fill = bat.group, 
      weight = bat.money, position = "dodge", facets = . ~ factor)

看起来真不错。我想知道是否有可能将条件1和条件2的值在每组中并排出现。像这样:这就是我要找的——我没有在文档中搜索术语“交互”。有道理。