繁体   English   中英

R编程ggvis直方图和hist-如何确定铲斗的尺寸并定义X轴间距(刻度)

[英]R programming ggvis histogram verses hist - How to size the buckets, and define X axis spacing (ticks)

我正在学习使用ggvis,并想了解如何创建与hist产生的等效直方图。 具体来说,如何在ggvis直方图中设置bin的宽度以及x的上下限? 我想念什么?

问题: 如何获得ggvis直方图输出以匹配历史输出?

让我举一个例子:

require(psych)
require(RCurl)
require(ggvis)

if ( !exists("impact") ) {
  url <- "https://dl.dropboxusercontent.com/u/8272421/stat/stat_one.txt"
  myCsv <- getURL(url, ssl.verifypeer = FALSE)
  impact <- read.csv(textConnection(myCsv), sep = "\t")
  impact$subject <- factor(impact$subject)
}

describe(impact)

hist(impact$verbal_memory_baseline, 
     main = "Distribution of verbal memory baseline scores", 
     xlab = "score", ylab = "frequency")

历史输出示例

好吧,让我们尝试用ggvis进行重现...输出不匹配...

impact %>%
ggvis( x = ~verbal_memory_baseline, fill := "white") %>%
layer_histograms(width = 5) %>%
add_axis("x", title = "score") %>%
add_axis("y", title = "frequency")

ggvis直方图输出

如何获得ggvis输出以匹配历史输出?


> sessionInfo()
R version 3.2.2 (2015-08-14)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Running under: OS X 10.11.2 (El Capitan)

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] psych_1.5.6      knitr_1.11       ggvis_0.4.2.9000 setwidth_1.0-4  colorout_1.1-1   vimcom_1.2-3    

loaded via a namespace (and not attached):
[1] Rcpp_0.12.0          digest_0.6.8         dplyr_0.4.3.9000     assertthat_0.1       mime_0.3            
[6] R6_2.1.1             jsonlite_0.9.16      xtable_1.7-4         DBI_0.3.1            magrittr_1.5        
[11] lazyeval_0.1.10.9000 rstudioapi_0.3.1     rmarkdown_0.7        tools_3.2.2          shiny_0.12.2        
[16] httpuv_1.3.3         yaml_2.1.13          parallel_3.2.2       rsconnect_0.4.1.4    mnormt_1.5-3        
[21] htmltools_0.2.6

尝试

impact %>%
  ggvis( x = ~verbal_memory_baseline, fill := "white") %>%
  layer_histograms(width = 5, boundary = 5) %>% 
  add_axis("y", title = "frequency") %>%
  add_axis("x", title = "score", ticks = 5)

这使:

在此处输入图片说明


官方文档对boundarycenter工作方式有些神秘。 看看DataCamp的R中如何使用ggvis制作直方图

width参数已经将垃圾箱宽度设置为5,但是垃圾箱从哪里开始,在哪里结束? 您可以为此使用centerboundary参数。 center应参考箱的中心值之一,箱的中心值会自动确定其他箱的位置。 boundary参数指定容器之一的边界值。 同样,指定单个值将固定所有垃圾箱的位置。 由于这两个参数以不同的方式指定相同的事物,因此您最多应设置centerboundary


如果要使用center而不是boundary来获得相同的结果,请尝试:

impact %>%
  ggvis( x = ~verbal_memory_baseline, fill := "white") %>%
  layer_histograms(width = 5, center = 77.5) %>% 
  add_axis("y", title = "frequency") %>%
  add_axis("x", title = "score", ticks = 5)

您在此处指定垃圾箱的中心(77.5),它会自动确定所有其他垃圾箱

史蒂文斯的答案是正确的。

有了他的指导,我可以更深入地阅读文档:

layer_histograms():

http://www.rdocumentation.org/packages/ggvis/functions/layer_histograms

边界

  • 两个垃圾箱之间的边界。 与中心一样,当边界超出数据范围时,事物也会移动。 例如,要以整数为中心,即使宽度1不在数据范围内,也应使用width = 1和boundary = 0.5。 最多可以指定中心和边界之一。

add_axis()

http://www.rdocumentation.org/packages/ggvis/functions/add_axis

  • 所需的刻度数。 所得的数字可能会有所不同,因此值是“ nice”(2、5、10的倍数),并且位于基本标度的范围内。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM