说我们有:
x <- rnorm(1000)
y <- rnorm(1000)
Run Code Online (Sandbox Code Playgroud)
如何使用ggplot2生成包含以下两个geom的图:
我知道如何做第一部分:
df <- data.frame(x=x, y=y)
p <- ggplot(df, aes(x=x, y=y))
p <- p + xlim(-10, 10) + ylim(-10, 10) # say
p <- p + geom_point(x=mean(x), y=mean(y))
Run Code Online (Sandbox Code Playgroud)
我也知道ggplot2中的stat_contour()和stat_density2d()函数.
我也知道stat_contour中有'bins'选项.
但是,我想我需要的是像分位数中的probs参数,但是超过两个维度而不是一个维度.
我也在图形包中看到了一个解决方案.但是,我想在ggplot中这样做.
非常感谢,
乔恩
我已经尝试了几个小时在我的macbook上使用Rstudio中的git.但是,缺少在版本控制中使用git的选项 - 唯一的选项仍然是(无).
我已将git文件放在隐藏文件夹中
/本地/ git的/ bin中/混帐
并使用全局选项指向Rstudio.
任何解决方案都很受欢
谢谢,乔恩
我试图在PC上的Rstudio(0.98.953)中使用rmarkdown,这是第一次.我已升级到R(3.1.1)和R studio的最新版本.sessionInfo()的输出在此问题的末尾提供.
据我所知,rmarkdown应该包含在Rstudio中.但是,当我选择在Rstudio中创建markdown文档时,会弹出一个对话框,说明需要安装其他软件包.rmarkdown的安装总是失败,并显示以下消息:
Installing package into '\\cfsk18.campus.gla.ac.uk/SSD_Home_Data_X/jm383x/My Documents/R/win-library/3.1'
(as 'lib' is unspecified)
* installing *source* package 'rmarkdown' ...
** R
** inst
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
*** arch - i386
Warning in library(pkg_name, lib.loc = lib, character.only = TRUE, logical.return = TRUE) :
there is no package called 'rmarkdown'
Error: loading failed
Execution halted
*** arch - x64
Warning in …Run Code Online (Sandbox Code Playgroud) 我目前有一些可绘制的代码(请参见下面的代码),它们产生的输出看起来像这样:
而我想要生产的东西将更像这样:
即,我希望自定义文本hoverinfo可以针对两个系列同时显示另一个系列的相应信息,并报告哪个更高或更低。
生成第一张图片的代码:
require(tidyverse)
require(plotly)
data("beavers")
beaver_tidy <- beaver1 %>%
mutate(label = "a") %>%
bind_rows(
beaver2 %>%
mutate(label = "b")
) %>%
mutate(daytime = day * max(time) + time) %>%
as_tibble()
beaver_tidy %>%
group_by(label) %>%
plot_ly(
x = ~ time, y = ~temp, color = ~label
) %>%
add_lines(
)
Run Code Online (Sandbox Code Playgroud)
我希望能够将hoverinfo参数设置为“文本” plot_ly或add_lines将其设置为“文本”,然后添加一个text参数以适应上面的代码以产生上面显示的模拟图像。
我希望并担心这只有一行答案,并且很尴尬不得不问它:
由于使用 reshape2 投射数据框,我有一个大数据框,其第一行如下:
ukgridcode x y year pm10 pm2.5 no2 nox co so2 ozone benzene
1 56361 460500 1218500 2001 8.583796 NaN 2.375508 3.031918 NaN NaN NaN NaN
2 57051 460500 1217500 2001 8.584764 NaN 2.368387 3.022830 NaN NaN NaN NaN
3 57052 461500 1217500 2001 8.587392 NaN 2.383438 3.042039 NaN NaN NaN NaN
4 57054 463500 1217500 2001 8.590163 NaN 2.455386 3.133869 NaN NaN NaN NaN
5 57741 460500 1216500 2001 8.588822 NaN 2.375839 3.032340 NaN NaN NaN …Run Code Online (Sandbox Code Playgroud) 假设我们有一些这样的数据:
dta <- data.frame(
group = rep(letters[1:8], each=1000),
x = runif(8000), y=runif(8000)
)
Run Code Online (Sandbox Code Playgroud)
我想为每个组生成一个包含 y ~ x 的格子图。但是,组广告位于第一行,呃位于第二行。即,我想做相当于
qplot(x=x, y=y, data=dta) + facet_wrap(~ group, nrow=2)
Run Code Online (Sandbox Code Playgroud)
但在莱迪思。做这个的最好方式是什么?
这是一段代码plyr.我通过分组变量A分割数据帧dta,然后将用户定义的函数fn应用于每个部分:
require(plyr)
dta <- data.frame(
A=rep(LETTERS[1:7], each=1000),
B=runif(7000)
)
fn <- function(x){
y <- x
multiplier <- ifelse(
x$A[1] %in% c("A", "D", "E"),
3, 2
)
to_multiply <- y$B > 0.3
y$B[to_multiply] <- y$B[to_multiply] *multiplier
return(y)
}
dta_der <- ddply(dta, .(A), fn)
Run Code Online (Sandbox Code Playgroud)
这符合我的预期.(注意,功能本身并不重要.这只是一个例子.)
现在这就是我所期望的将会产生相同的结果 dplyr
require(dplyr)
dta <- data.frame(
A=rep(LETTERS[1:7], each=1000),
B=runif(7000)
)
fn <- function(x){
y <- x
multiplier <- ifelse(
x$A[1] %in% c("A", "D", "E"),
3, 2
)
to_multiply <- y$B > 0.3
y$B[to_multiply] <- y$B[to_multiply] …Run Code Online (Sandbox Code Playgroud)