ggplot用于数据框中列的各种值

时间:2016-11-30 15:57:36

标签: r ggplot2

如果问题标题不是很清楚,请道歉。

我的数据包含以下列:

  1. Total number of ads #Values范围为4到25
  2. Position of ad #value的范围是1到25(最大total number of ads
  3. Impressions for each ad #value类型为
  4. 现在,我想为total number of ads的每个值创建位置与平均展示次数的关系图。也就是说,当total number of ads为10时,在x轴上获得position of ad的图表,并在每个位置获得所有Impressions的平均值。

    我做了一个通用的情节,没有使用以下内容对Total number of ads的每个值进行分类:

    ggplot(colors, aes(x=factor(colors$`Position of Ad in Break`), y=colors$Impressions)) + 
     stat_summary(fun.y="mean", geom="bar") + 
     ggtitle("average impressions per ad position by total ads") +
     labs(x="Ad Position", y="Average Impressions")
    

    我尝试使用所有值执行for循环:

    for(i in colors$`Total number of Ads in Break`){
      ggplot(colors, aes(x=factor(colors$`Position of Ad in Break` + colors$`Total number of Ads in Break`), y=colors$Impressions)) + 
        stat_summary(fun.y="mean", geom="bar") + 
        ggtitle("average impressions per ad position by total ads") +
        labs(x="Ad Position", y="Average Impressions")
    }
    

    这给出了一个我不理解的图表,但绝对不是我想要的。

    有人能帮助我吗?

    修改

    我尝试了循环:

    for(i in colors$`Total number of Ads in Break`){
      ggplot(colors, aes(x=factor(colors$`Position of Ad in Break` + i), y=colors$Impressions)) + 
        stat_summary(fun.y="mean", geom="bar") + 
        ggtitle("average impressions per ad position by total ads") +
        labs(x="Ad Position", y="Average Impressions")
    }
    

    仍然没有给我我想要的东西。

    此外,样本数据:

    Impressions    Position_of_ad    Total_ads
    30.95          11                19
    101.41         18                23
    21.99          10                19
    22.23          18                21
    79.42          8                 20
    22.39          6                 22
    15.8           10                21
    46.78          14                20
    57.05          12                23
    

1 个答案:

答案 0 :(得分:1)

这将创建一个位置与展示次数的条形图,其中包含广告总数:

ggplot(colors, aes(Position_of_ad, Impressions)) +
   geom_bar(stat = "identity") + 
   facet_wrap(~Total_ads, ncol = 3)