如何使用ggplot来配合这个功能?

时间:2017-03-20 15:59:33

标签: r function ggplot2

我有这个代码,它产生了底层的情节:

ggplot(data = df.wind, aes(x=variable, y=value)) + geom_boxplot(fill="gray70")+theme_gray()+
    stat_summary(fun.y=mean, colour="darkred", geom="point", 
     shape=18, size=3,show_guide = FALSE)

其中df.wind是一个带有两个熔体列的data.frame,带有x变量和y值(nrow = 1564)

dput(head(df.wind, 100))


structure(list(variable = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), .Label = c("1.1", 
"1.4", "1.6", "1.7", "1.8", "1.9", "2", "2.1", "2.2", "2.3", 
"2.4", "2.5", "2.6", "2.7", "2.8", "2.9", "3", "3.1", "3.2", 
"3.3", "3.4", "3.5", "3.6", "3.7", "3.8", "3.9", "4", "4.1", 
"4.2", "4.3", "4.4", "4.5", "4.6", "5"), class = "factor"), value = c(0.00648136404831617, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 0.0568710218569573, 
0.0331350764009738, 0.000778567742181346, NA, NA, NA, NA, NA)), .Names = c("variable", 
"value"), row.names = c(NA, 100L), class = "data.frame")

x变量从1.1到5(见下图) 图中的红点是boxplot的平均值。现在,我想在ggplot中的红点(平均值)上拟合此函数:

f.1 <- function(x) {0.20*exp(-1/2*(x-2.44)^2/0.44^2)}

我尝试:

 stat_function(fun=f.1)

但结果是:

enter image description here

我想要一个这样的情节:enter image description here 但是对于ggplot,灰度平滑的标准偏差,你能帮帮我吗?

输入(在融化之前)是:

#the melt is : 
#df.wind <- melt(df.first) 
> df.first
   1.1 1.4          1.6          1.7          1.8          1.9           2          2.1          2.2          2.3          2.4          2.5          2.6
1  0.006481364  NA 0.0568710219 0.0002457609 3.871170e-01 2.200518e-02 0.005475164 1.826136e-01 1.947184e-01 0.5896813676 2.232600e-01 0.3225219218 5.608991e-01
2           NA  NA 0.0331350764 0.0046640489 1.843779e-01 1.749766e-01 0.191004819 1.193214e-01 2.962062e-01 0.3851783671 6.182950e-03 0.5348332898 4.677831e-03
3           NA  NA 0.0007785677 0.2175048788 2.346405e-01 1.039406e-01 0.001825656 2.269029e-01 2.833296e-02 0.4138489953 9.377955e-04 0.0669620460 1.536969e-01
4           NA  NA           NA 0.2027838961 2.504343e-05 4.234387e-03 0.380774453 2.370194e-01 2.915897e-01 0.0599432588 3.597421e-02 0.0227235796 3.130949e-04
5           NA  NA           NA 0.0367588055 2.807767e-03 1.043797e-01 0.095845304 2.650026e-01 3.288862e-01 0.2526289542 1.587802e-01 0.2029812664 3.032966e-01
6           NA  NA           NA 0.0001293493 5.342767e-03 1.769321e-03 0.113826202 1.683836e-02 4.439024e-02 0.3283661206 2.169965e-01 0.0986317353 6.965810e-03
7           NA  NA           NA 0.0006016244 1.585400e-05 1.343501e-02 0.151902423 2.279927e-02 3.106943e-01 0.2191588897 2.025941e-01 0.2591057730 9.564509e-02
8           NA  NA           NA 0.0003273569 5.325572e-02 7.717559e-03 0.001200171 2.025384e-01 6.217285e-02 0.0739923928 1.475138e-01 0.0490003961 4.181948e-04
9           NA  NA           NA           NA 1.278425e-03 7.333455e-05 0.006748834 2.437205e-01 2.086699e-01 0.3121729942 1.604040e-01 0.1522214138 2.760602e-01
10          NA  NA           NA           NA           NA 3.831140e-02 0.094883403 3.649736e-01 3.076180e-01 0.0249218123 3.161318e-02 0.1027799792 4.707866e-02
11          NA  NA           NA           NA           NA           NA 0.601483711 1.289741e-01 3.144645e-01 0.2694828722 1.499636e-01 0.0002089831 5.267470e-02
12          NA  NA           NA           NA           NA           NA 0.004431897 1.679061e-01 2.336073e-01 0.0080753440 1.148124e-01 0.0002318349 4.456481e-02
13          NA  NA           NA           NA           NA           NA          NA 8.714860e-02 1.368767e-05 0.3077823053 6.334479e-02 0.1301838300 1.609331e-02
14          NA  NA           NA           NA           NA           NA          NA 2.350875e-01 2.356636e-01 0.0224159440 4.949959e-02 0.2966093282 8.454459e-02
15          NA  NA           NA           NA           NA           NA          NA 2.384074e-02 5.570163e-02 0.4247469808 3.452081e-01 0.3216333776 4.160845e-02
16          NA  NA           NA           NA           NA           NA          NA 1.264587e-01 8.635376e-03 0.1347697166 4.080500e-01 0.0001647543 2.631321e-01
17          NA  NA           NA           NA           NA           NA          NA 1.420702e-02 5.428180e-02 0.6103309658 3.911007e-01 0.1509425436 1.489941e-01
18          NA  NA           NA           NA           NA           NA          NA 2.103427e-01 3.737007e-01 0.3007014279 4.938125e-01 0.3973828526 3.383276e-02
19          NA  NA           NA           NA           NA           NA          NA 2.554504e-01 1.147018e-02 0.0002265803 4.591925e-03 0.3572377602 3.123913e-03
20          NA  NA           NA           NA           NA           NA          NA 5.577335e-05 2.335174e-01 0.0012259679 4.286238e-01 0.0161561379 3.614286e-03
21          NA  NA           NA           NA           NA           NA          NA 1.667312e-04 1.073280e-02 0.7883638555 8.441154e-05 0.6982952461 4.818615e-01
22          NA  NA           NA           NA           NA           NA          NA 4.001766e-02 2.752639e-05 0.4168715366 8.879262e-02 0.0996059651 5.569416e-01
23          NA  NA           NA           NA           NA           NA          NA 2.664961e-01 1.072301e-01 0.3107491289 6.056280e-02 0.4275775383 1.234737e-01
24          NA  NA           NA           NA           NA           NA          NA 4.255213e-03 7.977676e-03 0.5816519028 1.002626e-04 0.0353262065 5.315425e-01
25          NA  NA           NA           NA           NA           NA          NA 6.163023e-04 1.837984e-01 0.7605576498 8.716455e-02 0.2690340651 3.893844e-01
26          NA  NA           NA           NA           NA           NA          NA 6.254674e-01           NA 0.0037816680 1.270891e-01 0.7090851147 1.430902e-01
27          NA  NA           NA           NA           NA           NA          NA 1.255314e-04           NA 0.0003029731 1.506215e-04 0.2948073844 4.800682e-04
28          NA  NA           NA           NA           NA           NA          NA 1.108163e-03           NA 0.2367400881 1.597357e-03 0.0188122801 3.765104e-05
29          NA  NA           NA           NA           NA           NA          NA 2.554425e-03           NA 0.3832140107 1.014310e-02 0.0871446820 5.907831e-05
30          NA  NA           NA           NA           NA           NA          NA 2.530984e-01           NA 0.0576820845 3.921193e-03           NA 6.753260e-02
31          NA  NA           NA           NA           NA           NA          NA 1.391381e-01           NA 0.3609909332 1.000000e+00           NA 3.704665e-05
32          NA  NA           NA           NA           NA           NA          NA 3.565458e-05           NA           NA 7.390058e-02           NA 2.167710e-01
33          NA  NA           NA           NA           NA           NA          NA           NA           NA           NA 3.837534e-01           NA 4.893506e-01
34          NA  NA           NA           NA           NA           NA          NA           NA           NA           NA 1.616508e-01           NA 4.865724e-02
35          NA  NA           NA           NA           NA           NA          NA           NA           NA           NA 9.098772e-01           NA 1.789785e-03
36          NA  NA           NA           NA           NA           NA          NA           NA           NA           NA 4.470068e-01           NA 2.031151e-01
37          NA  NA           NA           NA           NA           NA          NA           NA           NA           NA 4.830038e-01           NA 2.219624e-02
38          NA  NA           NA           NA           NA           NA          NA           NA           NA           NA 1.241570e-02           NA 2.260588e-01
39          NA  NA           NA           NA           NA           NA          NA           NA           NA           NA 5.432443e-04           NA 6.782484e-01
40          NA  NA           NA           NA           NA           NA          NA           NA           NA           NA 4.520105e-03           NA 5.582500e-01
41          NA  NA           NA           NA           NA           NA          NA           NA           NA           NA           NA           NA 4.243905e-01
42          NA  NA           NA           NA           NA           NA          NA           NA           NA           NA           NA           NA 2.995666e-02
43          NA  NA           NA           NA           NA           NA          NA           NA           NA           NA           NA           NA 1.474023e-02
44          NA  NA           NA           NA           NA           NA          NA           NA           NA           NA           NA           NA 6.399836e-01
45          NA  NA           NA           NA           NA           NA          NA           NA           NA           NA           NA           NA 1.491312e-03
46          NA  NA           NA           NA           NA           NA          NA           NA           NA           NA           NA           NA 6.471179e-01
            2.7          2.8          2.9            3          3.1          3.2          3.3          3.4          3.5          3.6          3.7          3.8         3.9
1  4.499662e-04 4.308965e-01 0.1846289754 0.1495882052 6.437727e-03 1.754048e-05 0.1393672129 0.0001247298 0.0004091646 5.839879e-02 0.0135808849 0.0547941581 0.020006029
2  1.306869e-01 2.861627e-01 0.0841788570 0.0007794227 2.786660e-01 6.188519e-02 0.0969532654 0.0175693273 0.0516393173 1.744447e-02 0.0757759423 0.0055829809 0.002544278
3  3.336478e-01 1.896727e-01 0.1866402182 0.2341742385 2.087043e-01 1.100505e-02 0.0546199912 0.0131491746 0.0332847618 2.534892e-03 0.0179282760 0.0004245233 0.001469554
4  2.830717e-01 1.067222e-01 0.2813401463 0.0015782953 1.041643e-04 1.003798e-01 0.0512842982 0.0112158358 0.0023525605 2.652773e-02 0.0092351396           NA          NA
5  1.934817e-01 1.745480e-01 0.2480641519 0.0071154953 9.463470e-04 2.651030e-02 0.0001757652 0.0498236007 0.1768925514 9.057567e-03 0.0006734735           NA          NA
6  2.628157e-01 8.548378e-02 0.0750665697 0.0989676920 1.153380e-04 7.905279e-02 0.0287358828 0.0001157812 0.0086979789 5.038585e-05           NA           NA          NA
7  1.825299e-02 1.687716e-01 0.0322639113 0.0811943959 3.659172e-04 3.108384e-04 0.0800617978 0.0001046283 0.0003794121           NA           NA           NA          NA
8  4.365543e-05 5.042217e-02 0.0346419790 0.0105210803 6.637921e-05 1.126566e-02 0.0917971146 0.0400625240           NA           NA           NA           NA          NA
9  2.064168e-01 1.831961e-02 0.0623602459 0.0267009176 2.111716e-03 1.251065e-01 0.0002682661 0.0000352683           NA           NA           NA           NA          NA
10 1.369157e-01 1.818023e-01 0.0009934843 0.0017759396 1.987876e-04 2.673977e-01           NA 0.0040503935           NA           NA           NA           NA          NA
11 2.447317e-01 3.944215e-02 0.2122951249 0.0240529727 3.126166e-04 2.539193e-01           NA 0.0006627692           NA           NA           NA           NA          NA
12 7.528366e-02 8.125089e-05 0.0332381395 0.0137881345           NA 1.188077e-04           NA 0.0001098824           NA           NA           NA           NA          NA
13 4.086752e-03 2.821779e-01 0.4631477592 0.2654398549           NA           NA           NA           NA           NA           NA           NA           NA          NA
14 3.345307e-01 1.389398e-04 0.1540744209 0.1643144661           NA           NA           NA           NA           NA           NA           NA           NA          NA
15 1.991549e-01 3.299329e-01 0.3394782692 0.0030171718           NA           NA           NA           NA           NA           NA           NA           NA          NA
16 1.437708e-03 4.952253e-01 0.4763051089 0.1909704485           NA           NA           NA           NA           NA           NA           NA           NA          NA
17 6.435376e-05 7.593932e-05 0.0988324122 0.0002964738           NA           NA           NA           NA           NA           NA           NA           NA          NA
18 2.932503e-01 1.890247e-02 0.0017489274 0.0109076578           NA           NA           NA           NA           NA           NA           NA           NA          NA
19 4.773677e-01 4.435161e-01 0.1552828208 0.0001522862           NA           NA           NA           NA           NA           NA           NA           NA          NA
20 4.190843e-01 9.612338e-05 0.2890716709 0.0001810531           NA           NA           NA           NA           NA           NA           NA           NA          NA
21 5.624247e-03           NA 0.0016066623           NA           NA           NA           NA           NA           NA           NA           NA           NA          NA
22 1.370349e-02           NA 0.0009029369           NA           NA           NA           NA           NA           NA           NA           NA           NA          NA
23 2.947277e-03           NA 0.0012422839           NA           NA           NA           NA           NA           NA           NA           NA           NA          NA
24 2.104341e-01           NA 0.0002637792           NA           NA           NA           NA           NA           NA           NA           NA           NA          NA
25           NA           NA 0.0382562883           NA           NA           NA           NA           NA           NA           NA           NA           NA          NA
26           NA           NA 0.0241366774           NA           NA           NA           NA           NA           NA           NA           NA           NA          NA
27           NA           NA 0.0852539202           NA           NA           NA           NA           NA           NA           NA           NA           NA          NA
28           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA          NA
29           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA          NA
30           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA          NA
31           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA          NA
32           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA          NA
33           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA          NA
34           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA          NA
35           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA          NA
36           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA          NA
37           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA          NA
38           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA          NA
39           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA          NA
40           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA          NA
41           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA          NA
42           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA          NA
43           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA          NA
44           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA          NA
45           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA          NA
46           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA           NA          NA
             4       4.1         4.2          4.3        4.4 4.5         4.6          5
1  0.001269770 0.2891099 0.003761482 0.0008819435 0.04863082  NA 0.003254704 0.00678208
2  0.003180993        NA          NA 0.0071604527         NA  NA 0.013918034         NA
3  0.024833000        NA          NA           NA         NA  NA          NA         NA
4  0.001493825        NA          NA           NA         NA  NA          NA         NA
5  0.000069243        NA          NA           NA         NA  NA          NA         NA
6           NA        NA          NA           NA         NA  NA          NA         NA
7           NA        NA          NA           NA         NA  NA          NA         NA
8           NA        NA          NA           NA         NA  NA          NA         NA
9           NA        NA          NA           NA         NA  NA          NA         NA
10          NA        NA          NA           NA         NA  NA          NA         NA
11          NA        NA          NA           NA         NA  NA          NA         NA
12          NA        NA          NA           NA         NA  NA          NA         NA
13          NA        NA          NA           NA         NA  NA          NA         NA
14          NA        NA          NA           NA         NA  NA          NA         NA
15          NA        NA          NA           NA         NA  NA          NA         NA
16          NA        NA          NA           NA         NA  NA          NA         NA
17          NA        NA          NA           NA         NA  NA          NA         NA
18          NA        NA          NA           NA         NA  NA          NA         NA
19          NA        NA          NA           NA         NA  NA          NA         NA
20          NA        NA          NA           NA         NA  NA          NA         NA
21          NA        NA          NA           NA         NA  NA          NA         NA
22          NA        NA          NA           NA         NA  NA          NA         NA
23          NA        NA          NA           NA         NA  NA          NA         NA
24          NA        NA          NA           NA         NA  NA          NA         NA
25          NA        NA          NA           NA         NA  NA          NA         NA
26          NA        NA          NA           NA         NA  NA          NA         NA
27          NA        NA          NA           NA         NA  NA          NA         NA
28          NA        NA          NA           NA         NA  NA          NA         NA
29          NA        NA          NA           NA         NA  NA          NA         NA
30          NA        NA          NA           NA         NA  NA          NA         NA
31          NA        NA          NA           NA         NA  NA          NA         NA
32          NA        NA          NA           NA         NA  NA          NA         NA
33          NA        NA          NA           NA         NA  NA          NA         NA
34          NA        NA          NA           NA         NA  NA          NA         NA
35          NA        NA          NA           NA         NA  NA          NA         NA
36          NA        NA          NA           NA         NA  NA          NA         NA
37          NA        NA          NA           NA         NA  NA          NA         NA
38          NA        NA          NA           NA         NA  NA          NA         NA
39          NA        NA          NA           NA         NA  NA          NA         NA
40          NA        NA          NA           NA         NA  NA          NA         NA
41          NA        NA          NA           NA         NA  NA          NA         NA
42          NA        NA          NA           NA         NA  NA          NA         NA
43          NA        NA          NA           NA         NA  NA          NA         NA
44          NA        NA          NA           NA         NA  NA          NA         NA
45          NA        NA          NA           NA         NA  NA          NA         NA
46          NA        NA          NA           NA         NA  NA          NA         NA
> 

1 个答案:

答案 0 :(得分:1)

由于您的variable列是一个因素,因此您的f.1函数将其视为整数(1.1变为1,1.4变为2,1.6变为3,依此类推)。它也扭曲了x轴的间隙(注意1.1与1.4的距离相同,1.4与1.4相同)。

要解决此问题,您可以:

  • 事先将variable列更改为数字
  • 为您的美学添加group=variable。当x轴是数字时,这是创建箱线图所必需的。

代码:

df.wind$variable <- as.numeric(as.character(df.wind$variable))

ggplot(data = df.wind, aes(x=variable, y=value, group=variable)) +
  geom_boxplot(fill="gray70")+theme_gray()+
  stat_summary(fun.y=mean, colour="darkred", geom="point", 
               shape=18, size=3,show_guide = FALSE) +
  stat_function(fun=f.1)