使用 facet_grid 或 facet_wrap 根据组的最大值和最小值独立修复 y_scale

Posted

技术标签:

【中文标题】使用 facet_grid 或 facet_wrap 根据组的最大值和最小值独立修复 y_scale【英文标题】:Independently fixing y_scale according to max and min values of groups using facet_grid or facet_wrap 【发布时间】:2014-03-27 05:49:23 【问题描述】:

我正在尝试使用 facet_grid() 或 facet_wrap() 来绘制多个时间序列。

首先:我在使用变量 tac 时遇到此错误:

Error in seq.default(from = best$lmin, to = best$lmax, by = best$lstep) :'from' must be of length 1 

...当我使用变量 cpue 时,会出现以下警告:

geom_path: Each group consist of only one observation. Do you need to adjust the group aesthetic?

我一直没能找到问题出在哪里,所以:

知道如何解决吗?

第二

我的变量“tac”的范围根据“渔业”中的组而有所不同。例如,“tasAba”的范围在 2100 到 2660 之间,“sawzbGL”的范围在 27 到 41 之间。因此,“tasAba”的线将显示一个模式,而“sawzbGL”的线将是平坦的。所以:

我想独立修复y_scale,根据渔业中每组的最大值和最小值,在ggplot中可以吗?

任何帮助将不胜感激。

附言

这是我的代码:

  ggplot(data=lobaba_aba,aes(x=season, y=cpue, colour=fishery)) +
  geom_line()+facet_grid(fishery ~., scales = "free", as.table = TRUE)

这是我数据的一小部分,如果您想尝试一下:

 season fishery tac cpue
1990    nswAba  NA  20
1991    nswAba  NA  19
1992    nswAba  NA  18
1993    nswAba  NA  20
1994    nswAba  NA  22
1995    nswAba  NA  25
1996    nswAba  333 21
1997    nswAba  333 20
1998    nswAba  333 19
1999    nswAba  333 18
2000    nswAba  305 19
2001    nswAba  305 25
2002    nswAba  300 21
2003    nswAba  291 16
2004    nswAba  283 14
2005    nswAba  130 12
2006    nswAba  125 15
2007    nswAba  110 18
2008    nswAba  105 18
2009    nswAba  73  18
2010    nswAba  94  35
2011    nswAba  109 39
1990    tasAba  2100    61
1991    tasAba  2100    62
1992    tasAba  2100    71
1993    tasAba  2100    73
1994    tasAba  2100    79
1995    tasAba  2100    80
1996    tasAba  2100    85
1997    tasAba  2520    90
1998    tasAba  2520    98
1999    tasAba  2520    91
2000    tasAba  2690    102
2001    tasAba  2660    90
2002    tasAba  2397    84
2003    tasAba  2468    82
2004    tasAba  2380    85
2005    tasAba  2380    84
2006    tasAba  2380    86
2007    tasAba  2380    75.5
2008    tasAba  2471    72.8
2009    tasAba  2482    76.3
2010    tasAba  2527    65.2
2011    tasAba  2422    57.8
1990    sawzaBL 293.25  68.65
1991    sawzaBL 293.25  69.97
1992    sawzaBL 293.25  64.77
1993    sawzaBL 293.25  64.94
1994    sawzaBL 293.25  66.09
1995    sawzaBL 293.25  68.38
1996    sawzaBL 258 63.27
1997    sawzaBL 293.25  66.35
1998    sawzaBL 293.25  65.47
1999    sawzaBL 293.25  66.44
2000    sawzaBL 293.25  68.12
2001    sawzaBL 293.25  74.74
2002    sawzaBL 293.25  75.09
2003    sawzaBL 293.25  79.59
2004    sawzaBL 293.25  78.35
2005    sawzaBL 293.25  77.3
2006    sawzaBL 293.25  79.85
2007    sawzaBL 293.25  76.06
2008    sawzaBL 293.25  74.47
2009    sawzaBL 293.25  69.97
2010    sawzaBL 276 69.8
2011    sawzaBL 276 68.21
1990    sawzaGL 207 65.7
1991    sawzaGL 207 67.4
1992    sawzaGL 207 62.6
1993    sawzaGL 207 63.3
1994    sawzaGL 207 66.3
1995    sawzaGL 207 63.8
1996    sawzaGL 207 63.5
1997    sawzaGL 207 64.4
1998    sawzaGL 207 68.2
1999    sawzaGL 207 67.8
2000    sawzaGL 207 71.3
2001    sawzaGL 207 75
2002    sawzaGL 207 80.2
2003    sawzaGL 207 85.8
2004    sawzaGL 207 83.2
2005    sawzaGL 207 83.5
2006    sawzaGL 227.7   81.3
2007    sawzaGL 227.7   80.3
2008    sawzaGL 227.7   79.8
2009    sawzaGL 227.7   72.7
2010    sawzaGL 207 72.5
2011    sawzaGL 207 72.3
1990    sawzbBL NA  49.61
1991    sawzbBL 27.6    42.4
1992    sawzbBL 27.6    53.7
1993    sawzbBL 34.5    63.17
1994    sawzbBL 41.4    48.5
1995    sawzbBL 41.4    51.16
1996    sawzbBL 41.4    53.13
1997    sawzbBL 41.4    52.19
1998    sawzbBL 41.4    57.08
1999    sawzbBL 41.4    50.13
2000    sawzbBL 41.4    44.89
2001    sawzbBL 41.4    51.07
2002    sawzbBL 41.4    53.65
2003    sawzbBL 41.4    48.33
2004    sawzbBL 41.4    49.01
2005    sawzbBL 41.4    51.07
2006    sawzbBL 41.4    55.19
2007    sawzbBL 41.4    51.33
2008    sawzbBL 41.4    49.01
2009    sawzbBL 41.4    52.01
2010    sawzbBL 41.4    40.94
2011    sawzbBL 27.6    31.16
1990    sawzbGL NA  44.43
1991    sawzbGL 27.6    50.96
1992    sawzbGL 27.6    57.39
1993    sawzbGL 34.5    53.98
1994    sawzbGL 41.4    51.24
1995    sawzbGL 41.4    43.77
1996    sawzbGL 41.4    43.3
1997    sawzbGL 41.4    39.99
1998    sawzbGL 41.4    40.46
1999    sawzbGL 41.4    51.05
2000    sawzbGL 41.4    52.66
2001    sawzbGL 41.4    51.05
2002    sawzbGL 41.4    49.54
2003    sawzbGL 41.4    52.85
2004    sawzbGL 41.4    48.41
2005    sawzbGL 41.4    45.57
2006    sawzbGL 41.4    44.06
2007    sawzbGL 41.4    46.33
2008    sawzbGL 41.4    48.5
2009    sawzbGL 41.4    41.22
2010    sawzbGL 41.4    42.07
2011    sawzbGL 27.6    36.68
1990    saczBL  41.1    59.43
1991    saczBL  41.1    75.69
1992    saczBL  41.1    58.88
1993    saczBL  41.1    63.71
1994    saczBL  42.3    67.03
1995    saczBL  42.3    67.59
1996    saczBL  42.3    64.27
1997    saczBL  42.3    61.92
1998    saczBL  42.3    63.16
1999    saczBL  42.3    60.4
2000    saczBL  42.3    71.18
2001    saczBL  42.3    71.3
2002    saczBL  42.3    66.34
2003    saczBL  42.3    75.46
2004    saczBL  42.3    72.42
2005    saczBL  29.7    66.06
2006    saczBL  24.3    63.58
2007    saczBL  24.3    70.07
2008    saczBL  24.3    61.92
2009    saczBL  24.3    69.11
2010    saczBL  24.3    66.06
2011    saczBL  24.3    62.47
1990    saczGL  142.2   61.94
1991    saczGL  142.2   60.94
1992    saczGL  142.2   60.27
1993    saczGL  142.2   61.27
1994    saczGL  143.1   57.76
1995    saczGL  143.1   55.59
1996    saczGL  143.1   64.27
1997    saczGL  143.1   59.1
1998    saczGL  143.1   61.6
1999    saczGL  143.1   65.44
2000    saczGL  143.1   83.97
2001    saczGL  143.1   86.48
2002    saczGL  143.1   79.13
2003    saczGL  143.1   83.64
2004    saczGL  143.1   82.8
2005    saczGL  143.1   75.13
2006    saczGL  143.1   76.79
2007    saczGL  143.1   70.95
2008    saczGL  143.1   75.63
2009    saczGL  143.1   77.13
2010    saczGL  143.1   72.29
2011    saczGL  143.1   67.11
2003    saszfdaBL   51  72.09
2004    saszfdaBL   51  66.59
2005    saszfdaBL   45  75.82
2006    saszfdaBL   45  84.18
2007    saszfdaBL   45  88.13
2008    saszfdaBL   45  74.07
2009    saszfdaBL   45  67.91
2003    sasznfdaBL  96  93.81
2004    sasznfdaBL  96  98.68
2005    sasznfdaBL  99  102.78
2006    sasznfdaBL  99  97.27
2007    sasznfdaBL  99  102.1
2008    sasznfdaBL  99  104.75
2009    sasznfdaBL  99  106
1990    vicwzAba    NA  77
1991    vicwz   NA  75
1992    vicwz   NA  69
1993    vicwz   NA  68
1994    vicwz   NA  64
1995    vicwz   NA  64
1996    vicwz   NA  73
1997    vicwz   NA  76
1998    vicwz   NA  79
1999    vicwz   NA  78
2000    vicwz   NA  87
2001    vicwz   NA  85
2002    vicwz   266 79
2003    vicwz   275 114
2004    vicwz   254 96
2005    vicwz   221 72
2006    vicwz   168 74
2007    vicwz   114 83
2008    vicwz   20  51
2009    vicwz   26  52
2010    vicwz   29  49
2011    vicwz   53.2    NA
1990    viccz   NA  65
1991    viccz   NA  60
1992    viccz   NA  61
1993    viccz   NA  63
1994    viccz   NA  65
1995    viccz   NA  70
1996    viccz   NA  80
1997    viccz   NA  83
1998    viccz   NA  90
1999    viccz   NA  90
2000    viccz   NA  95
2001    viccz   NA  96
2002    viccz   665 95
2003    viccz   673 123
2004    viccz   617 95
2005    viccz   620 86
2006    viccz   620 75
2007    viccz   620 74
2008    viccz   465 80
2009    viccz   432 79
2010    viccz   285 72
2011    viccz   331.9   NA
1990    vicez   NA  69
1991    vicez   NA  67
1992    vicez   NA  70
1993    vicez   NA  73
1994    vicez   NA  81
1995    vicez   NA  82
1996    vicez   NA  83
1997    vicez   NA  85
1998    vicez   NA  85
1999    vicez   NA  85
2000    vicez   NA  91
2001    vicez   NA  92
2002    vicez   465 87
2003    vicez   488 95
2004    vicez   488 158
2005    vicez   489 105
2006    vicez   489 109
2007    vicez   490 109
2008    vicez   490 109
2009    vicez   460 105
2010    vicez   428 106
2011    vicez   432 NA
1990    nzP2    121.19  111
1991    nzP2    121.19  91
1992    nzP2    121.19  86
1993    nzP2    121.19  96
1994    nzP2    121.19  92
1995    nzP2    121.19  107
1996    nzP2    121.19  108
1997    nzP2    121.19  111
1998    nzP2    121.19  139
1999    nzP2    121.19  155
2000    nzP2    121.19  162
2001    nzP2    121.19  138
2002    nzP2    121.19  149
2003    nzP2    121.19  157
2004    nzP2    121.19  166
2005    nzP2    121.19  147
2006    nzP2    121.19  156
2007    nzP2    121.19  147
2008    nzP2    121.19  NA
2009    nzP2    121.19  NA
2010    nzP2    121.19  NA
2011    nzP2    121.19  NA
1990    nzP3    77.24   153
1991    nzP3    91.5    111
1992    nzP3    91.5    97
1993    nzP3    91.5    120
1994    nzP3    91.5    105
1995    nzP3    91.62   100
1996    nzP3    91.62   104
1997    nzP3    91.62   113
1998    nzP3    91.62   112
1999    nzP3    91.62   127
2000    nzP3    91.62   116
2001    nzP3    91.62   107
2002    nzP3    91.62   113
2003    nzP3    91.62   102
2004    nzP3    91.62   115
2005    nzP3    91.62   105
2006    nzP3    91.62   127
2007    nzP3    91.62   108
2008    nzP3    91.62   NA
2009    nzP3    91.62   NA
2010    nzP3    91.62   NA
2011    nzP3    91.62   NA
1990    nzP4    287.25  336.36
1991    nzP4    287.25  389.42
1992    nzP4    287.25  374.93
1993    nzP4    287.25  300.46
1994    nzP4    287.25  292.91
1995    nzP4    326.54  313.24
1996    nzP4    326.54  333.81
1997    nzP4    326.54  334.7
1998    nzP4    326.54  294.05
1999    nzP4    326.54  397.36
2000    nzP4    326.54  361.98
2001    nzP4    326.54  425.98
2002    nzP4    326.54  465.96
2003    nzP4    326.54  472.01
2004    nzP4    326.54  449.08
2005    nzP4    326.54  420.47
2006    nzP4    326.54  433.44
2007    nzP4    326.54  448.6
2008    nzP4    326.54  396.61
2009    nzP4    326.54  NA
2010    nzP4    326.54  NA
2011    nzP4    326.54  NA
1990    nzP5A   NA  1.385
1991    nzP5A   NA  1.21
1992    nzP5A   NA  1.18
1993    nzP5A   NA  1.005
1994    nzP5A   NA  1.05
1995    nzP5A   148.98  1.13
1996    nzP5A   148.98  1.055
1997    nzP5A   148.98  1.135
1998    nzP5A   148.98  1.04
1999    nzP5A   148.98  1.08
2000    nzP5A   148.98  1.085
2001    nzP5A   148.98  1.1
2002    nzP5A   148.98  1.165
2003    nzP5A   148.98  1.16
2004    nzP5A   148.98  1.04
2005    nzP5A   148.98  1.065
2006    nzP5A   148.98  1.04
2007    nzP5A   148.98  0.96
2008    nzP5A   148.98  0.94
2009    nzP5A   148.98  1.055
2010    nzP5A   148.98  NA
2011    nzP5A   148.98  NA
1990    nzP5B   NA  200.7
1991    nzP5B   NA  186.7
1992    nzP5B   NA  171.4
1993    nzP5B   NA  155.3
1994    nzP5B   NA  145.1
1995    nzP5B   148.98  127.2
1996    nzP5B   148.98  152
1997    nzP5B   148.98  142.8
1998    nzP5B   148.98  136.3
1999    nzP5B   143.98  146.2
2000    nzP5B   112.19  115.6
2001    nzP5B   112.19  154.6
2002    nzP5B   90  157
2003    nzP5B   90  159.9
2004    nzP5B   90  174.9
2005    nzP5B   90  194.9
2006    nzP5B   90  NA
2007    nzP5B   90  NA
2008    nzP5B   90  NA
2009    nzP5B   90  NA
2010    nzP5B   90  NA
2011    nzP5B   90  NA
1990    nzP5D   NA  1.04
1991    nzP5D   NA  1.21
1992    nzP5D   NA  1.05
1993    nzP5D   NA  1.2
1994    nzP5D   NA  1.06
1995    nzP5D   148.98  1.08
1996    nzP5D   148.98  0.99
1997    nzP5D   148.98  0.9
1998    nzP5D   148.98  0.78
1999    nzP5D   148.98  1.11
2000    nzP5D   148.98  0.93
2001    nzP5D   148.98  0.84
2002    nzP5D   114 0.81
2003    nzP5D   89  0.84
2004    nzP5D   89  0.79
2005    nzP5D   89  0.91
2006    nzP5D   89  1.13
2007    nzP5D   89  1.05
2008    nzP5D   89  1.04
2009    nzP5D   89  1.17
2010    nzP5D   89  1.19
2011    nzP5D   89  1.33
1990    nzP7    266.24  119.7
1991    nzP7    266.17  118.8
1992    nzP7    266.17  100.8
1993    nzP7    266.17  115.8
1994    nzP7    266.17  113.6
1995    nzP7    267.48  109
1996    nzP7    267.48  108
1997    nzP7    267.48  95.3
1998    nzP7    267.48  96.5
1999    nzP7    267.48  104
2000    nzP7    213.98  72.1
2001    nzP7    240.73  54.3
2002    nzP7    187.24  61.8
2003    nzP7    159.15  61
2004    nzP7    159.15  61.6
2005    nzP7    159.15  65.9
2006    nzP7    159.15  95.2
2007    nzP7    187.24  98
2008    nzP7    187.24  86
2009    nzP7    187.24  89
2010    nzP7    187.24  90
2011    nzP7    187.24  92

【问题讨论】:

什么代码产生了你提到的错误?您发布的唯一代码运行良好,似乎准确地产生了您描述的输出 您好,可能是因为我发布了一小部分数据。现在我发布了整个数据框。感谢您查看我的问题。 R 【参考方案1】:

错误是因为有一个渔业(“vicwzAba”)只有 1 个非NA 值。

table(lobaba_aba$fishery)

##  nswAba       nzP2       nzP3       nzP4      nzP5A      nzP5B      nzP5D 
##      22         22         22         22         22         22         22 
##    nzP7     saczBL     saczGL  saszfdaBL sasznfdaBL    sawzaBL    sawzaGL 
##      22         22         22          7          7         22         22 
## sawzbBL    sawzbGL     tasAba      viccz      vicez      vicwz   vicwzAba 
##      22         22         22         22         22         21          1 

删除该渔业可修复该错误。从您的代码生成的图似乎符合您的要求。它们在 y 轴上有独立的刻度,并随着时间的推移显示每个渔业。

dat <- lobaba_aba[lobaba_aba$fishery != "vicwzAba",]

p <- ggplot(data = dat, aes(x = season, y = cpue, colour = fishery)) +
    geom_line() + facet_grid(fishery ~ ., scales = "free", as.table = TRUE)

p

p %+% aes(y = tac)

【讨论】:

以上是关于使用 facet_grid 或 facet_wrap 根据组的最大值和最小值独立修复 y_scale的主要内容,如果未能解决你的问题,请参考以下文章

geom_hline 或 geom_vline 似乎不接受矢量作为参考线,如果在函数内部调用并且使用 facet_grid()

facet_grid层次分裂

将带有美元符号 ($) 的变量与 facet_grid() 或 facet_wrap() 组合传递给 aes() 时出现问题

将多个文本标签添加到单个 facet_grid 面板

我可以自由设置秤比x和y其它美学(例如尺寸)使用facet_grid时?

ggplot2 facet_grid 带有构面标题