ggplot2:geom_line的大小和位置 [英] ggplot2: Size and placement of geom_line

查看:196
本文介绍了ggplot2:geom_line的大小和位置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  mdfr<  -  read.table(textConnection (
名称stadio变量值评级
541B 1 start_date 22/02/2011 5
541B 2 start_date 24/05/2011 5
541B 3 start_date 01/06/2011 5
541B 4 start_date 20/09/2011 5
579B 1 start_date 07/06/2011 5
579B 2 start_date 08/02/2012 5
579B 3 start_date 09/02 / 2012 5
579B 4 start_date 24/04/2012 5
635B 1 start_date 03/05/2012 5
635B 2 start_date 29/06/2012 5
635B 3 start_date 05 / 07/2012 5
635B 4 start_date 11/09/2012 5
700B 1 start_date 29/02/2012 5
700B 2 start_date 29/02/2012 5
700B 3 start_date 29/02/2012 5
700B 4 start_date 08/05/2012 5
558B 1 start_date 30/05/2011 5
558B 2 start_date 17/10/2011 5
558B 3 start_date 27/01/2012 5
558B 4 start_date 06/04/2012 5
725B 1 start_date 28/12/2011 5
725B 2 start_date 23/02 / 2012 5
725B 3 start_date 02/03/2012 5
725B 4 start_date 31/05/2012 5
727B 1 start_date 23/12/2011 5
727B 2 start_date 03 / 02/2012 5
727B 3 start_date 16/02/2012 5
727B 4 start_date 18/05/2012 5
733B 1 start_date 30/12/2011 5
733B 2 start_date 23/02/2012 5
733B 3 start_date 02/03/2012 5
733B 4 start_date 07/06/2012 5
734B 1 start_date 16/03/2012 5
734B 2 start_date 16/03/2012 5
734B 3 start_date 16/03/2012 5
734B 4 start_date 25/04/2012 5
719B 1 start_date 29/06/2012 5
719B 2 start_date 10/07/2012 5
719B 3 start_date 19/07/2012 5
719B 4 start_date 16/1 0/2012 5
737B 1 start_date 22/06/2012 5
737B 2 start_date 25/07/2012 5
737B 3 start_date 01/08/2012 5
737B 4 start_date 23/10/2012 5
541A 1 start_date 22/02/2011 3
541A 2 start_date 24/05/2011 3
541A 3 start_date 01/06/2011 3
541A 4 start_date 20/09/2011 3
579A 1 start_date 07/06/2011 3
579A 2 start_date 08/02/2012 3
579A 3 start_date 09/02/2012 3
579A 4 start_date 08/05/2012 3
635A 1 start_date 03/05/2012 3
635A 2 start_date 31/07/2012 3
635A 3 start_date 31/07/2012 3
635A 4 start_date 23/10/2012 3
700A 1 start_date 22/03/2012 3
700A 2 start_date 22/03/2012 3
700A 3 start_date 22/03/2012 3
700A 4 start_date 12/06/2012 3
558A 1 start_date 30/05/2011 3
558A 2 sta rt_date 17/10/2011 3
558A 3 start_date 27/01/2012 3
558A 4 start_date 06/04/2012 3
725A 1 start_date 28/12/2011 3
725A 2 start_date 23/02/2012 3
725A 3 start_date 02/03/2012 3
725A 4 start_date 31/05/2012 3
727A 1 start_date 23/12/2011 3
727A 2 start_date 03/02/2012 3
727A 3 start_date 16/02/2012 3
727A 4 start_date 18/05/2012 3
733A 1 start_date 30/12/2011 3
733A 2 start_date 23/02/2012 3
733A 3 start_date 02/03/2012 3
733A 4 start_date 07/06/2012 3
734A 1 start_date 16/03 / 2012 3
734A 2 start_date 16/03/2012 3
734A 3 start_date 16/03/2012 3
734A 4 start_date 25/04/2012 3
719A 1 start_date 10 / 07/2012 3
719A 2 start_date 17/07/2012 3
719A 3 start_date 26/07/2012 3
719 A 4 start_date 09/10/2012 3
737A 1 start_date 01/07/2012 3
737A 2 start_date 06/07/2012 3
737A 3 start_date 26/07/2012 3
737A 4 start_date 16/10/2012 3
541B 1 end_date 24/05/2011 5
541B 2 end_date 01/06/2011 5
541B 3 end_date 20/09/2011 5
541B 4 end_date 28/09/2012 5
579B 1 end_date 08/02/2012 5
579B 2 end_date 09/02/2012 5
579B 3 end_date 24/04 / 2012 5
579B 4 end_date 29/10/2012 5
635B 1 end_date 29/06/2012 5
635B 2 end_date 05/07/2012 5
635B 3 end_date 11 / 09/2012 5
635B 4 end_date 04/02/2013 5
700B 1 end_date 29/02/2012 5
700B 2 end_date 29/02/2012 5
700B 3 end_date 08/05/2012 5
700B 4 end_date 12/11/2012 5
558B 1 end_date 17/10/2011 5
558B 2 end_date 27/01/2012 5
558B 3 end_date 06/04/2012 5
558B 4 end_date 09/09/2012 5
725B 1 end_date 23/02 / 2012 5
725B 2 end_date 02/03/2012 5
725B 3 end_date 31/05/2012 5
725B 4 end_date 30/11/2012 5
727B 1 end_date 03 / 02/2012 5
727B 2 end_date 16/02/2012 5
727B 3 end_date 18/05/2012 5
727B 4 end_date 19/11/2012 5
733B 1 end_date 23/02/2012 5
733B 2 end_date 02/03/2012 5
733B 3 end_date 07/06/2012 5
733B 4 end_date 30/11/2012 5
734B 1 end_date 16/03/2012 5
734B 2 end_date 16/03/2012 5
734B 3 end_date 25/04/2012 5
734B 4 end_date 04/07/2012 5
719B 1 end_date 10/07/2012 5
719B 2 end_date 19/07/2012 5
719B 3 end_date 16 / 10/2012 5
719B 4 end_date 28/02/2013 5
737B 1 end_date 25/07/2012 5
737B 2 end_date 01/08/2012 5
737B 3 end_date 23/10/2012 5
737B 4 end_date 28/02/2013 5
541A 1 end_date 24/05/2011 3
541A 2 end_date 01/06/2011 3
541A 3 end_date 20/09/2011 3
541A 4 end_date 17/01/2013 3
579A 1 end_date 08/02/2012 3
579A 2 end_date 09/02/2012 3
579A 3 end_date 08/05/2012 3
579A 4 end_date 19/12/2012 3
635A 1 end_date 31/07/2012 3
635A 2 end_date 31/07/2012 3
635A 3 end_date 23/10/2012 3
635A 4 end_date 22/03/2013 3
700A 1 end_date 22/03/2012 3
700A 2 end_date 22/03 / 2012 3
700A 3 end_date 12/06/2012 3
700A 4 end_date 18/12/2012 3
558A 1 end_date 17/10/2011 3
558A 2 end_date 27/01/2012 3
558A 3 end_date 06/04/2012 3
558A 4 end_date 10/01/2013 3
725A 1 end_date 23/02/2012 3
725A 2 end_date 02/03/2012 3
725A 3 end_date 31/05/2012 3
725A 4 end_date 30/11/2012 3
727A 1 end_date 03/02/2012 3
727A 2 end_date 16/02/2012 3
727A 3 end_date 18/05/2012 3
727A 4 end_date 19/11/2012 3
733A 1 end_date 23/02/2012 3
733A 2 end_date 02/03/2012 3
733A 3 end_date 07/06/2012 3
733A 4 end_date 30/11 / 2012 3
734A 1 end_date 16/03/2012 3
734A 2 end_date 16/03/2012 3
734A 3 end_date 25/04/2012 3
734A 4 end_date 20 / 09/2012 3
719A 1 end_date 17/07/2012 3
719A 2 end_date 26/07/2012 3
7 19A 3 end_date 09/10/2012 3
719A 4 end_date 21/12/2012 3
737A 1 end_date 06/07/2012 3
737A 2 end_date 26/07/2012 3
737A 3 end_date 16/10/2012 3
737A 4 end_date 28/12/2012 3
) - > con,header = T); close(con)

我使用以下命令创建了一个图

  ggplot(mdfr,aes(as.Date(value,%d /%m /%Y),name,color = factor(stadio)))+ 
geom_line(size = 5 )+
xlab()+ ylab()+ labs(color =Title)+
scale_colour_brewer(pal =RdYlGn,breaks = c(1,2 ,3,4),标签= c(标签1,标签2,标签3,标签4))

我需要您的帮助来完成以下操作:


  1. 更改名称以 A 结尾的行的条的大小。也就是说,我不希望使用 geom_line(size = 5),我想这个大小等于变量 rating ,即5表示以B结尾的名称,3表示以A结尾的名字。


  2. 是否有可能使具有相同数字的条他们的名字看起来像成对,看起来像有11对而不是22个单独的对吗?例如737A比734B更接近737B。 (看起来像)。


  3. 如果出现第二个(或第三个)图例,如何禁用所选图例的外观? - 因为使用 opts(legend.position =none)使它们全部不可见。为什么ggplot命令在ggplot 0.9.1中产生一个错误,而如果我使用ggplot 0.8.9则为ok? (scale_map.discrete中的错误(scale,df [[j]]):尝试应用非函数)。我应该如何修改它?



  4. 预先致谢

    编辑



    我在No 4中发现了问题,而不是pal =RdYlGn,我应该给palette =RdYlGn。

    解决方案

    编辑时,我误读了第一个问题

    1)美学。

    2)使用您提供的数据,数据是以这种方式绘制的,但您可以按照顺序在ggplot内对其进行排序。



    3)在要删除的比例中使用 guide = none

      ggplot(mdfr [order(mdfr $ name),],aes(as.Date(value,%d /%m /%Y),name ,color = factor(stadio)))+ 
    geom_line(aes(size = as.factor(rating)))+
    labs(color =Title,x =,y = )+
    scale_size_manual(breaks = c(3,5),values = c(3,5),guide =none)+
    scale_colour_brewer(palette =RdYlGn,break = c(1,2,3,4),
    labels = c(标签1,标签2,标签3,标签4))


    Here is the data for the plot that I am trying to modify:

    mdfr <- read.table(textConnection("
     name stadio   variable      value rating
    541B      1 start_date 22/02/2011      5
    541B      2 start_date 24/05/2011      5
    541B      3 start_date 01/06/2011      5
    541B      4 start_date 20/09/2011      5
    579B      1 start_date 07/06/2011      5
    579B      2 start_date 08/02/2012      5
    579B      3 start_date 09/02/2012      5
    579B      4 start_date 24/04/2012      5
    635B      1 start_date 03/05/2012      5
    635B      2 start_date 29/06/2012      5
    635B      3 start_date 05/07/2012      5
    635B      4 start_date 11/09/2012      5
    700B      1 start_date 29/02/2012      5
    700B      2 start_date 29/02/2012      5
    700B      3 start_date 29/02/2012      5
    700B      4 start_date 08/05/2012      5
    558B      1 start_date 30/05/2011      5
    558B      2 start_date 17/10/2011      5
    558B      3 start_date 27/01/2012      5
    558B      4 start_date 06/04/2012      5
    725B      1 start_date 28/12/2011      5
    725B      2 start_date 23/02/2012      5
    725B      3 start_date 02/03/2012      5
    725B      4 start_date 31/05/2012      5
    727B      1 start_date 23/12/2011      5
    727B      2 start_date 03/02/2012      5
    727B      3 start_date 16/02/2012      5
    727B      4 start_date 18/05/2012      5
    733B      1 start_date 30/12/2011      5
    733B      2 start_date 23/02/2012      5
    733B      3 start_date 02/03/2012      5
    733B      4 start_date 07/06/2012      5
    734B      1 start_date 16/03/2012      5
    734B      2 start_date 16/03/2012      5
    734B      3 start_date 16/03/2012      5
    734B      4 start_date 25/04/2012      5
    719B      1 start_date 29/06/2012      5
    719B      2 start_date 10/07/2012      5
    719B      3 start_date 19/07/2012      5
    719B      4 start_date 16/10/2012      5
    737B      1 start_date 22/06/2012      5
    737B      2 start_date 25/07/2012      5
    737B      3 start_date 01/08/2012      5
    737B      4 start_date 23/10/2012      5
    541A      1 start_date 22/02/2011      3
    541A      2 start_date 24/05/2011      3
    541A      3 start_date 01/06/2011      3
    541A      4 start_date 20/09/2011      3
    579A      1 start_date 07/06/2011      3
    579A      2 start_date 08/02/2012      3
    579A      3 start_date 09/02/2012      3
    579A      4 start_date 08/05/2012      3
    635A      1 start_date 03/05/2012      3
    635A      2 start_date 31/07/2012      3
    635A      3 start_date 31/07/2012      3
    635A      4 start_date 23/10/2012      3
    700A      1 start_date 22/03/2012      3
    700A      2 start_date 22/03/2012      3
    700A      3 start_date 22/03/2012      3
    700A      4 start_date 12/06/2012      3
    558A      1 start_date 30/05/2011      3
    558A      2 start_date 17/10/2011      3
    558A      3 start_date 27/01/2012      3
    558A      4 start_date 06/04/2012      3
    725A      1 start_date 28/12/2011      3
    725A      2 start_date 23/02/2012      3
    725A      3 start_date 02/03/2012      3
    725A      4 start_date 31/05/2012      3
    727A      1 start_date 23/12/2011      3
    727A      2 start_date 03/02/2012      3
    727A      3 start_date 16/02/2012      3
    727A      4 start_date 18/05/2012      3
    733A      1 start_date 30/12/2011      3
    733A      2 start_date 23/02/2012      3
    733A      3 start_date 02/03/2012      3
    733A      4 start_date 07/06/2012      3
    734A      1 start_date 16/03/2012      3
    734A      2 start_date 16/03/2012      3
    734A      3 start_date 16/03/2012      3
    734A      4 start_date 25/04/2012      3
    719A      1 start_date 10/07/2012      3
    719A      2 start_date 17/07/2012      3
    719A      3 start_date 26/07/2012      3
    719A      4 start_date 09/10/2012      3
    737A      1 start_date 01/07/2012      3
    737A      2 start_date 06/07/2012      3
    737A      3 start_date 26/07/2012      3
    737A      4 start_date 16/10/2012      3
    541B      1   end_date 24/05/2011      5
    541B      2   end_date 01/06/2011      5
    541B      3   end_date 20/09/2011      5
    541B      4   end_date 28/09/2012      5
    579B      1   end_date 08/02/2012      5
    579B      2   end_date 09/02/2012      5
    579B      3   end_date 24/04/2012      5
    579B      4   end_date 29/10/2012      5
    635B      1   end_date 29/06/2012      5
    635B      2   end_date 05/07/2012      5
    635B      3   end_date 11/09/2012      5
    635B      4   end_date 04/02/2013      5
    700B      1   end_date 29/02/2012      5
    700B      2   end_date 29/02/2012      5
    700B      3   end_date 08/05/2012      5
    700B      4   end_date 12/11/2012      5
    558B      1   end_date 17/10/2011      5
    558B      2   end_date 27/01/2012      5
    558B      3   end_date 06/04/2012      5
    558B      4   end_date 09/09/2012      5
    725B      1   end_date 23/02/2012      5
    725B      2   end_date 02/03/2012      5
    725B      3   end_date 31/05/2012      5
    725B      4   end_date 30/11/2012      5
    727B      1   end_date 03/02/2012      5
    727B      2   end_date 16/02/2012      5
    727B      3   end_date 18/05/2012      5
    727B      4   end_date 19/11/2012      5
    733B      1   end_date 23/02/2012      5
    733B      2   end_date 02/03/2012      5
    733B      3   end_date 07/06/2012      5
    733B      4   end_date 30/11/2012      5
    734B      1   end_date 16/03/2012      5
    734B      2   end_date 16/03/2012      5
    734B      3   end_date 25/04/2012      5
    734B      4   end_date 04/07/2012      5
    719B      1   end_date 10/07/2012      5
    719B      2   end_date 19/07/2012      5
    719B      3   end_date 16/10/2012      5
    719B      4   end_date 28/02/2013      5
    737B      1   end_date 25/07/2012      5
    737B      2   end_date 01/08/2012      5
    737B      3   end_date 23/10/2012      5
    737B      4   end_date 28/02/2013      5
    541A      1   end_date 24/05/2011      3
    541A      2   end_date 01/06/2011      3
    541A      3   end_date 20/09/2011      3
    541A      4   end_date 17/01/2013      3
    579A      1   end_date 08/02/2012      3
    579A      2   end_date 09/02/2012      3
    579A      3   end_date 08/05/2012      3
    579A      4   end_date 19/12/2012      3
    635A      1   end_date 31/07/2012      3
    635A      2   end_date 31/07/2012      3
    635A      3   end_date 23/10/2012      3
    635A      4   end_date 22/03/2013      3
    700A      1   end_date 22/03/2012      3
    700A      2   end_date 22/03/2012      3
    700A      3   end_date 12/06/2012      3
    700A      4   end_date 18/12/2012      3
    558A      1   end_date 17/10/2011      3
    558A      2   end_date 27/01/2012      3
    558A      3   end_date 06/04/2012      3
    558A      4   end_date 10/01/2013      3
    725A      1   end_date 23/02/2012      3
    725A      2   end_date 02/03/2012      3
    725A      3   end_date 31/05/2012      3
    725A      4   end_date 30/11/2012      3
    727A      1   end_date 03/02/2012      3
    727A      2   end_date 16/02/2012      3
    727A      3   end_date 18/05/2012      3
    727A      4   end_date 19/11/2012      3
    733A      1   end_date 23/02/2012      3
    733A      2   end_date 02/03/2012      3
    733A      3   end_date 07/06/2012      3
    733A      4   end_date 30/11/2012      3
    734A      1   end_date 16/03/2012      3
    734A      2   end_date 16/03/2012      3
    734A      3   end_date 25/04/2012      3
    734A      4   end_date 20/09/2012      3
    719A      1   end_date 17/07/2012      3
    719A      2   end_date 26/07/2012      3
    719A      3   end_date 09/10/2012      3
    719A      4   end_date 21/12/2012      3
    737A      1   end_date 06/07/2012      3
    737A      2   end_date 26/07/2012      3
    737A      3   end_date 16/10/2012      3
    737A      4   end_date 28/12/2012      3
    ")->con,header=T);close(con)
    

    I have created a plot using the following command

    ggplot(mdfr, aes(as.Date(value, "%d/%m/%Y"), name, colour = factor(stadio))) +
        geom_line(size = 5) +
        xlab("") + ylab("") + labs(colour="Title") +
        scale_colour_brewer(pal="RdYlGn",breaks = c("1", "2", "3","4"), labels = c("Label 1", "Label 2", "Label 3","Label 4"))
    

    I need your help to do the following:

    1. Change the size of the bars for the rows with names ending with an A. That is, instead of using geom_line(size = 5), I would like the size to be equal to the value of variable rating, i.e. 5 for names ending in B and 3 for names ending in A.

    2. Is it possible to make the bars that have the same number in their name to look like pairs in order to look like having 11 pairs instead of 22 seperate ones? e.g. 737A to be closer to 737B than 734B. (so as and look like that chart).

    3. In case a second (or third) legend appears, how can I suppress the appearance of a selected legend? - because using opts(legend.position = "none") makes all of them invisible.

    4. Why does this ggplot command generates an error in ggplot 0.9.1 while it is ok if I use ggplot 0.8.9? (Error in scale_map.discrete(scale, df[[j]]) : attempt to apply non-function). How should I modify it?

    Thanks in advance

    EDIT

    I found out the problem in No 4. Instead of pal="RdYlGn" I should give palette="RdYlGn".

    解决方案

    Edit, I had misread the first question

    1) Use the rating with size as an aesthetic.

    2) With the data you provided, the data is plotted that way but you can order it inside ggplot with order.

    3) Use guide = none in the scale you want to remove.

    ggplot(mdfr[order(mdfr$name),], aes(as.Date(value, "%d/%m/%Y"), name, colour = factor(stadio))) +
      geom_line(aes(size = as.factor(rating))) +
     labs(colour="Title", x = "", y = "") +
     scale_size_manual(breaks = c("3","5"), values = c(3,5), guide = "none")+
      scale_colour_brewer(palette="RdYlGn",breaks = c("1", "2", "3","4"), 
                          labels = c("Label 1", "Label 2", "Label 3","Label 4"))
    

    这篇关于ggplot2:geom_line的大小和位置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆