我正试着用插图绘制密度曲线.我的完整数据与本例非常不同,但下面演示了相同的行为:

library(ggplot2)
library(plotly)

a = rnorm(100,10,10)
a <- data.frame(a)
p <- ggplot(a, aes(x=a)) + 
     geom_density()

如果我画出来,我会得到我想要的曲线.

plot(p)

plain plot

但如果我使用ggploy,我会得到这个奇怪的结果,这显然是错误的,它绘制线条来包围曲线:

ggplotly(p)

ggplotly

人们可以做些什么来移除那个shell 呢?我在这个乱七八糟的物体里翻了个底朝天(在这篇文章的末尾). 但首先,我看到人们使用geom_ensity(Position="Identity"),但这并不管用.

p <- ggplot(a, aes(x=a)) + 
     geom_density(position = "identity")
ggplotly(p)

ggplotly plot with position =

所以我深入研究了这个乱七八糟的物体,看看是怎么回事.X&amp;y中的对象中有1026个值.

length(d$x[4]$data[[4]]$x)
> [4] 1026
length(d$x[4]$data[[4]]$y)
> [4] 1026

当我看它的y值时:

d <- ggplotly(p)

d$x[4]$data[[4]]$y[1:600]
  [4] 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
 [17] 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
 [33] 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
 [49] 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
 [65] 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
 [81] 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
 [97] 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
[113] 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
[129] 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
[145] 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
[161] 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
[177] 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
[193] 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
[209] 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
[225] 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
[241] 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
[257] 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
[273] 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
[289] 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
[305] 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
[321] 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
[337] 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
[353] 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
[369] 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
[385] 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
[401] 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
[417] 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
[433] 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
[449] 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
[465] 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
[481] 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
[497] 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
[513] 0.0000000000 0.0012671853 0.0012711407 0.0012735703 0.0012738452 0.0012727952 0.0012704564 0.0012665862 0.0012612032 0.0012547938 0.0012474102 0.0012387904 0.0012293494 0.0012192866 0.0012086507 0.0011974075
[529] 0.0011859353 0.0011743015 0.0011625991 0.0011510454 0.0011397231 0.0011286950 0.0011182647 0.0011084907 0.0010993500 0.0010909116 0.0010837321 0.0010774443 0.0010720787 0.0010678911 0.0010651175 0.0010633938
[545] 0.0010627292 0.0010635706 0.0010656675 0.0010688022 0.0010729679 0.0010786761 0.0010852796 0.0010927405 0.0011011626 0.0011105469 0.0011205186 0.0011310238 0.0011421166 0.0011535347 0.0011651267 0.0011768285
[561] 0.0011884455 0.0011998402 0.0012109460 0.0012215932 0.0012314636 0.0012406558 0.0012491081 0.0012563798 0.0012624416 0.0012674327 0.0012713034 0.0012732445 0.0012738352 0.0012730754 0.0012706862 0.0012662312
[577] 0.0012602995 0.0012528815 0.0012434209 0.0012321192 0.0012193400 0.0012050938 0.0011886265 0.0011707403 0.0011515229 0.0011308178 0.0011083864 0.0010848467 0.0010602435 0.0010343235 0.0010073406 0.0009795924
[593] 0.0009511323 0.0009217746 0.0008919515 0.0008617518 0.0008312109 0.0008004394 0.0007696296 0.0007388368

只要看一下数据,前513个年值就是0.所以如果我看一下1:513范围内的X:

d$x[4]$data[[4]]$x[1:513]
  [4] -18.21790571 -18.08147246 -17.94503921 -17.80860596 -17.67217272 -17.53573947 -17.39930622 -17.26287298 -17.12643973 -16.99000648 -16.85357323 -16.71713999 -16.58070674 -16.44427349 -16.30784025 -16.17140700
 [17] -16.03497375 -15.89854051 -15.76210726 -15.62567401 -15.48924076 -15.35280752 -15.21637427 -15.07994102 -14.94350778 -14.80707453 -14.67064128 -14.53420803 -14.39777479 -14.26134154 -14.12490829 -13.98847505
 [33] -13.85204180 -13.71560855 -13.57917530 -13.44274206 -13.30630881 -13.16987556 -13.03344232 -12.89700907 -12.76057582 -12.62414257 -12.48770933 -12.35127608 -12.21484283 -12.07840959 -11.94197634 -11.80554309
 [49] -11.66910985 -11.53267660 -11.39624335 -11.25981010 -11.12337686 -10.98694361 -10.85051036 -10.71407712 -10.57764387 -10.44121062 -10.30477737 -10.16834413 -10.03191088  -9.89547763  -9.75904439  -9.62261114
 [65]  -9.48617789  -9.34974464  -9.21331140  -9.07687815  -8.94044490  -8.80401166  -8.66757841  -8.53114516  -8.39471192  -8.25827867  -8.12184542  -7.98541217  -7.84897893  -7.71254568  -7.57611243  -7.43967919
 [81]  -7.30324594  -7.16681269  -7.03037944  -6.89394620  -6.75751295  -6.62107970  -6.48464646  -6.34821321  -6.21177996  -6.07534671  -5.93891347  -5.80248022  -5.66604697  -5.52961373  -5.39318048  -5.25674723
 [97]  -5.12031399  -4.98388074  -4.84744749  -4.71101424  -4.57458100  -4.43814775  -4.30171450  -4.16528126  -4.02884801  -3.89241476  -3.75598151  -3.61954827  -3.48311502  -3.34668177  -3.21024853  -3.07381528
[113]  -2.93738203  -2.80094878  -2.66451554  -2.52808229  -2.39164904  -2.25521580  -2.11878255  -1.98234930  -1.84591606  -1.70948281  -1.57304956  -1.43661631  -1.30018307  -1.16374982  -1.02731657  -0.89088333
[129]  -0.75445008  -0.61801683  -0.48158358  -0.34515034  -0.20871709  -0.07228384   0.06414940   0.20058265   0.33701590   0.47344915   0.60988239   0.74631564   0.88274889   1.01918213   1.15561538   1.29204863
[145]   1.42848187   1.56491512   1.70134837   1.83778162   1.97421486   2.11064811   2.24708136   2.38351460   2.51994785   2.65638110   2.79281435   2.92924759   3.06568084   3.20211409   3.33854733   3.47498058
[161]   3.61141383   3.74784708   3.88428032   4.02071357   4.15714682   4.29358006   4.43001331   4.56644656   4.70287980   4.83931305   4.97574630   5.11217955   5.24861279   5.38504604   5.52147929   5.65791253
[177]   5.79434578   5.93077903   6.06721228   6.20364552   6.34007877   6.47651202   6.61294526   6.74937851   6.88581176   7.02224501   7.15867825   7.29511150   7.43154475   7.56797799   7.70441124   7.84084449
[193]   7.97727773   8.11371098   8.25014423   8.38657748   8.52301072   8.65944397   8.79587722   8.93231046   9.06874371   9.20517696   9.34161021   9.47804345   9.61447670   9.75090995   9.88734319  10.02377644
[209]  10.16020969  10.29664294  10.43307618  10.56950943  10.70594268  10.84237592  10.97880917  11.11524242  11.25167566  11.38810891  11.52454216  11.66097541  11.79740865  11.93384190  12.07027515  12.20670839
[225]  12.34314164  12.47957489  12.61600814  12.75244138  12.88887463  13.02530788  13.16174112  13.29817437  13.43460762  13.57104087  13.70747411  13.84390736  13.98034061  14.11677385  14.25320710  14.38964035
[241]  14.52607359  14.66250684  14.79894009  14.93537334  15.07180658  15.20823983  15.34467308  15.48110632  15.61753957  15.75397282  15.89040607  16.02683931  16.16327256  16.29970581  16.43613905  16.57257230
[257]  16.70900555  16.84543880  16.98187204  17.11830529  17.25473854  17.39117178  17.52760503  17.66403828  17.80047152  17.93690477  18.07333802  18.20977127  18.34620451  18.48263776  18.61907101  18.75550425
[273]  18.89193750  19.02837075  19.16480400  19.30123724  19.43767049  19.57410374  19.71053698  19.84697023  19.98340348  20.11983673  20.25626997  20.39270322  20.52913647  20.66556971  20.80200296  20.93843621
[289]  21.07486945  21.21130270  21.34773595  21.48416920  21.62060244  21.75703569  21.89346894  22.02990218  22.16633543  22.30276868  22.43920193  22.57563517  22.71206842  22.84850167  22.98493491  23.12136816
[305]  23.25780141  23.39423466  23.53066790  23.66710115  23.80353440  23.93996764  24.07640089  24.21283414  24.34926738  24.48570063  24.62213388  24.75856713  24.89500037  25.03143362  25.16786687  25.30430011
[321]  25.44073336  25.57716661  25.71359986  25.85003310  25.98646635  26.12289960  26.25933284  26.39576609  26.53219934  26.66863259  26.80506583  26.94149908  27.07793233  27.21436557  27.35079882  27.48723207
[337]  27.62366531  27.76009856  27.89653181  28.03296506  28.16939830  28.30583155  28.44226480  28.57869804  28.71513129  28.85156454  28.98799779  29.12443103  29.26086428  29.39729753  29.53373077  29.67016402
[353]  29.80659727  29.94303052  30.07946376  30.21589701  30.35233026  30.48876350  30.62519675  30.76163000  30.89806324  31.03449649  31.17092974  31.30736299  31.44379623  31.58022948  31.71666273  31.85309597
[369]  31.98952922  32.12596247  32.26239572  32.39882896  32.53526221  32.67169546  32.80812870  32.94456195  33.08099520  33.21742845  33.35386169  33.49029494  33.62672819  33.76316143  33.89959468  34.03602793
[385]  34.17246117  34.30889442  34.44532767  34.58176092  34.71819416  34.85462741  34.99106066  35.12749390  35.26392715  35.40036040  35.53679365  35.67322689  35.80966014  35.94609339  36.08252663  36.21895988
[401]  36.35539313  36.49182638  36.62825962  36.76469287  36.90112612  37.03755936  37.17399261  37.31042586  37.44685910  37.58329235  37.71972560  37.85615885  37.99259209  38.12902534  38.26545859  38.40189183
[417]  38.53832508  38.67475833  38.81119158  38.94762482  39.08405807  39.22049132  39.35692456  39.49335781  39.62979106  39.76622431  39.90265755  40.03909080  40.17552405  40.31195729  40.44839054  40.58482379
[433]  40.72125704  40.85769028  40.99412353  41.13055678  41.26699002  41.40342327  41.53985652  41.67628976  41.81272301  41.94915626  42.08558951  42.22202275  42.35845600  42.49488925  42.63132249  42.76775574
[449]  42.90418899  43.04062224  43.17705548  43.31348873  43.44992198  43.58635522  43.72278847  43.85922172  43.99565497  44.13208821  44.26852146  44.40495471  44.54138795  44.67782120  44.81425445  44.95068769
[465]  45.08712094  45.22355419  45.35998744  45.49642068  45.63285393  45.76928718  45.90572042  46.04215367  46.17858692  46.31502017  46.45145341  46.58788666  46.72431991  46.86075315  46.99718640  47.13361965
[481]  47.27005290  47.40648614  47.54291939  47.67935264  47.81578588  47.95221913  48.08865238  48.22508562  48.36151887  48.49795212  48.63438537  48.77081861  48.90725186  49.04368511  49.18011835  49.31655160
[497]  49.45298485  49.58941810  49.72585134  49.86228459  49.99871784  50.13515108  50.27158433  50.40801758  50.54445083  50.68088407  50.81731732  50.95375057  51.09018381  51.22661706  51.36305031  51.49948355
[513]  51.49948355

它跨越整个X范围:

range(d$x[4]$data[[4]]$x)
> [4] -18.21791  51.49948

以下513个X&A;Y值是真实的.然后,X数据在514点1026分从51.49948回扫到-12.2179.在此范围内,Y值表示实际曲线.

因此,前513个值是y=0,这是在曲线底部呈现的线,其余513个y值是应该绘制的值.

绘制曲线时,它不可避免地从max(X)开始,在min(X)结束,因此在这些极端处为X绘制了两个点,这两个点可能表示包围以叠加方式渲染的geom_ensity曲线的垂直线. 我可以破解ggploy对象,让ggploy"行为"起来.

p <- ggplot(a, aes(x=a)) + 
    geom_density() + scale_y_continuous(limits = c(0.00000001,NA))

这真的打乱了Plot(P),不会渲染任何内容.然而,杂乱无章地呈现了一个没有"边界"的情节

ggplotly(p)

enter image description here

这并不理想,但这是一种有效的黑客攻击.

那么,为什么会以这种方式生成y=0值呢?我怎样才能阻止ggploly添加这些无稽之谈的数据,这样我就可以在不 destruct y标度的情况下从ggploly获得正确的渲染?

它可能是像ggploly选项一样简单的东西,但我什么都看不到.

推荐答案

如果你只想要这一行,那就用stat_density()来代替:

library(ggplot2)
library(plotly)

set.seed(1)
a = rnorm(100,10,10)
a <- data.frame(a)
p <- ggplot(a, aes(x=a)) + 
  stat_density(geom="line")

ggplotly(p)

result

R相关问答推荐

使用ggcorrplot在相关性矩阵上标注supertitle和index标签

检测(并替换)字符串中的数学符号

更改Heatmap Annotation对象的名称

如何自定义Shapviz图?

gt()从gt为相同内容的单元格 colored颜色 不同?

在另一个函数中调用ggplot2美学

错误:非常长的R行中出现意外符号

是否可以创建一个ggplot与整洁判断的交互作用

标识R中多个列中缺少的唯一值

如何在分组条形图中移动相关列?

根据现有列的名称和字符串的存在进行变异以创建多个新列

如何将R中数据帧中的任何Nas替换为最后4个值

如何在PackageStatus()中列出&q;不可用的包&q;?

Data.table';S GForce-将多个函数应用于多列(带可选参数)

R -在先前group_by级别汇总时获取最大大小子组的计数

从R中发出的咕噜声中的BUG?

以任意顺序提取具有多个可能匹配项的组匹配项

如何使用ggplot2根据绘图中生成的斜率对小平面进行排序?

在不重复主题的情况下重新排列组

如何在一个GGPLATE中绘制多个灰度平滑?