Tag: r

如何抖动文本,以避免在ggplot2 scatterplot重叠?

我想在ggplot2中创build一个干净的文本标签散点图。 目标是视觉上呈现与大约25个项目相关的不断增加的价值。 我已经在使用“position_jitter”,但我想知道我能做得更好。 这里是一些模拟数据: title <- rep("A Really Rather Long Text Label", 25) value <- runif(25, 1,10) spacing <- seq(1:25) df <- data.frame(title, value, spacing, stringsAsFactors = FALSE) 这里是生成图的代码: library(ggplot2) myplot <- ggplot(data=df, aes(x=spacing, y=value, label = title)) + geom_text(aes(colour = value), size = 2.5, fontface = "bold", vjust = 0, position = position_jitter(width=5, height=0)) […]

在R中使用ggplot2创build“雷达图”(aka star plot; spider plot)

我想创build一个如下所示的情节: 我知道我可以使用fmsb软件包中的radarchartfunction。 我想知道是否ggplot2可以这样做,使用极坐标? 谢谢。

LaTeX使用KnitR绘制R图的标签?

我无法让R / KnitR为graphics创buildLaTeX \label{}语句。 该手册似乎表明将通过将图.lp中的string(默认为“fig:”)与R代码块的标签连接来创build\label{}语句。 但是,我还没有能够得到这个工作。 对于通过编织下面的MWE创build的第一个graphics,将会创buildNo \label{}语句。 第二个图是标签添加了一个我刚刚发现的解决方法,将R块放在graphics环境中,并将\label标签放在\caption标签之后或之内。 \documentclass[12pt, english, oneside]{amsart} \begin{document} Figure \ref{fig:plot} doesn't have it's label. <<plot>>= plot(x=0, y=0) @ Figure \ref{fig:plot2} has its label. \begin{figure} \caption{\label{fig:plot2}} <<>>= plot(x=1,y=1) @ \end{figure} \end{document} 好的,我已经find了一个解决方法,把R块放在\begin{figure} . . .\end{figure} \begin{figure} . . .\end{figure} 。LaTeX中的\begin{figure} . . .\end{figure}环境。 我可以在同一个环境中创build标签。 不过,我想了解Yihui打算如何使用KnitR来处理这个问题。

在R公式中,为什么我必须使用幂函数的I()函数,如y〜I(x ^ 3)

我试图让我的头围绕使用代字符运算符和相关的函数。 我的第一个问题是为什么I()需要用来指定算术运算符? 例如,这两个图产生不同的结果(前者具有直线,后者是预期的曲线) x <- c(1:100) y <- seq(0.1,10,0.1) plot(y~x^3) plot(y~I(x^3)) 另外,以下两块地块也会产生预期的结果 plot(x^3, y) plot(I(x^3), y) 我的第二个问题是,或许我用过的例子太简单了,但我不明白应该在哪里使用。

余数和商的“%%”和“%/%”

我想知道如何以及为什么运算符“%%”和“%/%”是余数和商。 R开发者是否有任何理由或历史赋予他们这些意义? > 0 %/% 10 [1] 0 > 30 %% 10 [1] 0 > 35 %/% 10 [1] 3 > 35 %% 10 [1] 5

为什么数字1e9999 …(31 9s)在R中导致问题?

当input1e9999999999999999999999999999999到R时,R挂起并不会响应 – 要求终止。 它似乎发生在3个不同的计算机,操作系统(Windows 7和Ubuntu)。 它发生在RStudio,RGui和RScript中。 这里有一些代码可以更容易地生成数字: boom <- paste(c("1e", rep(9, 31)), collapse="") eval(parse(text=boom)) 现在显然这不是一个实际的问题。 我不需要使用这个数字。 这只是一个好奇的问题。 奇怪的是,如果你尝试1e9999999999999999999999999999998或者1e10000000000000000000000000000000 (加上或减去1),你分别得到Inf和0 。 这个数字显然是某种边界,但是在这个什么和为什么呢? 我认为这可能是: 一个浮点问题,但我认为他们最多在1.7977e308,早在这个数字之前。 一个32位整数的问题,但2 ^ 32是4294967296,远远小于所讨论的数量。 真奇怪。 这是我的主导理论。 编辑:截至2015-09-15最迟,这更长的时间导致R挂起。 他们必须修补它。

包括一个与knitr交互的3Dgraphics

使用knitr ,可以在Rmarkdown源文件的html文档中embedded一个rgl 3Dgraphics: “`{r setup} library(rgl) knit_hooks$set(rgl = hook_rgl) x <- sort(rnorm(1000)) y <- rnorm(1000) z <- rnorm(1000) + atan2(x,y) “` “`{r, rgl=TRUE} plot3d(x, y, z, col=rainbow(1000)) “` 但是3Dgraphics在html文档中不是交互式的。 是否有可能获得交互式3Dgraphics? rgl包的writeWebGL()函数创build一个交互式3Dgraphics的html文件,有没有办法直接包含这个html代码与Rmarkdown? 否则,如何手动包含这个HTML代码? 2013年6月24日更新 以下是一个今天无法使用的示例(3Dgraphics不会显示在Chrome中): Rmd源文件 ,这是非常基本的: “`{r setup} library(rgl) knit_hooks$set(webgl = hook_webgl) “` “`{r, webgl=TRUE} M <- rbind( c(0,0,0), c(-1,4,0), c(4,9,0), c(6,3,0) ) points3d(M,col='red') “` […]

在R中替代“!is.null()”

我的R代码最终包含了过多的表单语句: if (!is.null(aVariable)) { do whatever } 但是这种说法很难理解,因为它包含了两个否定。 我宁愿像这样的东西: if (is.defined(aVariable)) { do whatever } 在R中是否存在与is.null相反的is.definedtypes的函数? 欢呼声,扬尼克

如何从data.table中排除一列或者将data.table转换为MTS

当使用data.table有可能返回除了一个的所有列,如在data.frame ? 如果答案是否定的,有没有人有一个优雅的方式来将多个时间序列data.table转换为zoo或其他时间序列对象? 考虑下面的例子: library(data.table) library(zoo) ## DEFINE DATA set.seed(1) dt = data.table( mydates = as.Date("2012-01-01") + 1:9, value1 = sort(rpois(9, 6)), value2 = sort(rpois(9, 6)), value3 = sort(rpois(9, 6)), value4 = sort(rpois(9, 6)), value5 = sort(rpois(9, 6))) ## CONVERT TO DATA FRAME df = as.data.frame(dt) ## CONVERT TO ZOO zooObj = zoo(df[,-1], df$mydates) ## […]

如何将ggplot2的绘图保存为SVG

我想用ggplot2作为SVG保存一个堆积区域图(代码示例可以在这里find)。 尝试了开罗套餐,但结果是糟糕的。 library(ggplot2) library(grid) library(Cairo) … #png(output_file, width=800, height=400) Cairo(800,400,file=paste(output_file, ".svg", sep=""),type="svg",bg="transparent",pointsize=8, units="px",dpi=400) gt <- ggplot_gtable(ggplot_build(p)) gt$layout$clip[gt$layout$name=="panel"] <- "off" grid.draw(gt) dev.off()