我有三个图,我尝试将它们与grid.arrange结合起来.最后一个图的高度应小于前两个图,所有图的宽度应相同.
一个工作的例子:
p1 <- qplot(mpg, wt, data=mtcars)
p2 <- p1
p3 <- p1 + theme(axis.text.y=element_blank(), axis.title.y=element_blank())
grid.arrange(arrangeGrob(p1,p2, ncol=1, nrow=2),
arrangeGrob(p3, ncol=1, nrow=1), heights=c(4,1))
Run Code Online (Sandbox Code Playgroud)
这里,最后一个图的宽度大于前两个图.在我的真实数据中,即使我将文本和标题保留在y轴上,我仍然有第三个图的不同宽度.
我试图添加"宽度":
grid.arrange(arrangeGrob(p1,p2, ncol=1, nrow=2),
arrangeGrob(p3, ncol=1, nrow=1), heights=c(4,1), widths=c(2,1))
Run Code Online (Sandbox Code Playgroud)
但它变成了两列情节......
我还尝试了另一个代码:
p1 <- ggplotGrob(p1)
p2 <- ggplotGrob(p2)
p3 <- ggplotGrob(p3)
#
stripT <- subset(p2$layout, grepl("spacer", p2$layout$name))
p3 <- p3[-stripT$t, ]
grid.draw(rbind(p1, p2, p3, size = "first"))
Run Code Online (Sandbox Code Playgroud)
我有相同的宽度,但现在我不知道如何改变高度......
那么,有人可以帮助我将高度和宽度方面结合起来进行最终的情节吗?
我想用ubuntu从3.0.3到3.1.2更新R. 我正在研究Ubuntu 14.04LTS,64位.
我做了以下事情:
cd /etc/apt/
sudo gedit sources.list
Run Code Online (Sandbox Code Playgroud)
我添加了以下行:
deb http://cran.rstudio.com/bin/linux/ubuntu trusty/
Run Code Online (Sandbox Code Playgroud)
然后 :
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E084DAB9
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install r-base
Run Code Online (Sandbox Code Playgroud)
有些文件已上传.
然后我检查了R版本:
sudo R
version
platform x86_64-unknown-linux-gnu
arch x86_64
os linux-gnu
system x86_64, linux-gnu
status
major 3
minor 0.3
year 2014
month 03
day 06
svn rev 65126
language R
version.string R version 3.0.3 (2014-03-06)
nickname Warm Puppy
Run Code Online (Sandbox Code Playgroud)
我还有3.0.3版本,有人可以帮我升级到3.1.2吗?
编辑ECII:
sudo apt-get dist-upgrade
Reading package lists... Done
Building …Run Code Online (Sandbox Code Playgroud) 我有一个包含5列的数据框:
N1 <- an integer between c(125,100,80,70,60,50,40,30,20)
N2 <- an integer between c(1,5,10,15,20,25,30,35,40,50,60,80,100)
Type <- Two different types
Rang <- a number
crit <- a character, only one value
Run Code Online (Sandbox Code Playgroud)
N1永远大于N2.这是我的数据框(Rang_final)的开头示例:
N1 N2 Type rang crit
125 1 SST-T_2m 41.86395 BE_proba
125 1 T_2m-SST 163.41217 BE_proba
100 1 SST-T_2m 32.88181 BE_proba
100 1 T_2m-SST 137.44479 BE_proba
80 1 SST-T_2m 22.57176 BE_proba
80 1 T_2m-SST 112.52334 BE_proba
70 1 SST-T_2m 21.30066 BE_proba
70 1 T_2m-SST 99.65523 BE_proba …Run Code Online (Sandbox Code Playgroud) 我有一个包含 20 个日期的数据框,每个日期有 50 个值。我正在尝试绘制这些值的二维密度图,该图保留在最小-最大带内。我想要的一个例子是:
我知道如何绘制二维密度图以及丝带,但不知道如何将两者连接在一起。这是我的尝试:
require(ggplot2)
require(dplyr)
require(RColorBrewer)
set.seed(248)
##Create reproducible example
Chass <- data.frame(nb=rep(1:50, 10), x=rep(1:10, each=50), val=c(sample(seq(7,9,0.1), size=50, replace = T),
sample(seq(17,19,0.1), size=50, replace = T),
sample(seq(10,12,0.1), size=50, replace = T),
sample(seq(7,10,0.1), size=50, replace = T),
sample(seq(6,18,0.1), size=50, replace = T),
sample(seq(5,11,0.1), size=50, replace = T),
sample(seq(6,13,0.1), size=50, replace = T),
sample(seq(2,7,0.1), size=50, replace = T),
sample(seq(4,8,0.1), size=50, replace = T),
sample(seq(3,16,0.1), size=50, replace = T)))
##Compute statistics for the ribbon
Chass_stats <- summarise(group_by(Chass, x), min=min(val, na.rm=T), …Run Code Online (Sandbox Code Playgroud) 我正在处理大型矩阵和ff包。我正在加载一个ff对象,我想用它来计算crps(分数)。
例如,我有一个ff_matrix(称为Mat,具有25行和7303列),它是降水预测(7303代表天数(约20年),而25是一天的25次降水模拟)。我还有一个ff_array,其中包含这20年的观测值(称为Obs,具有7303值)。
使用ensembleBMA软件包,我想计算CRPS。我需要将ff_matrix和ff_array放在“ ensembleBMA”对象中(实际上这是一个data.frame)。
对于此代码:
ensembleBMA(Mat,Obs)
Run Code Online (Sandbox Code Playgroud)
我有这个错误:
Error in as.data.frame.default(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors) : cannot coerce class 'c("ff_matrix", "ff_array", "ff")' into a data.frame
Run Code Online (Sandbox Code Playgroud)
我尝试了其他选项,例如:
as.data.frame(Mat)
as.matrix(Mat)
transform.ffdf(as.ffdf(Mat))
Run Code Online (Sandbox Code Playgroud)
我总是有这些错误:
Error in as.data.frame.default(Mat_Ptot_212_1) : cannot automatically convert class 'c("ff_matrix", "ff_array", "ff")' into a data frame (data.frame)
Run Code Online (Sandbox Code Playgroud)
要么
opening ff /tmp/RtmpWrlY4n/clone9d3376b435.ff Error in ff(initdata = initdata, length = length, levels = levels, ordered = ordered, : write error
Run Code Online (Sandbox Code Playgroud)
有人有主意吗?
我有以下数据框:
df
zone X Y Value
1 604000 2673000 522
1 612000 2643000 524
. . . .
. . . .
615 604000 2673000 698
Run Code Online (Sandbox Code Playgroud)
实际上我有615个区域,X和Y是Lambert坐标,Value是下雨.我的区域代表法国,我试图绘制它们:
mi <- 300
ma <- 1900
df$val <- cut(df$Sim, breaks=seq(mi,ma,100),
labels = paste( "(", format(seq(mi,ma,100)[1:(length(seq(mi,ma,100))-1)]),
", ", format(seq(mi,ma,100)[-1]), "]", sep = ""))
breaks <- unique(bincol(df$Sim,"green","yellow","red"))
breaks <- breaks[order(unique(df$val))]
p <- ggplot(data =df, aes(x=X, y=Y))
p <- (p
+ theme_bw()
+ coord_equal()
+ geom_tile(aes(fill=val))
+ scale_colour_manual("mm", values = breaks)
+ geom_path(data = polfrance, colour …Run Code Online (Sandbox Code Playgroud) 我有一个非常复杂的闪亮代码,其中有几个面板和这些面板内的几个表格。启动应用程序时,列名称与列值正确对齐。但是,一旦我更改应用程序表格下的页码,列名称就会移动到左侧,而值仍保留在中间。如何强制应用程序使列名称与列值对齐?
\n一个可重现的例子:
\nlibrary(shiny)\nlibrary(dplyr)\nlibrary(DT)\nlibrary(dplyr)\n\nui <- fluidPage(\n \n titlePanel("Test Example"), \n \n fluidRow(\n column(3, align="left",\n \n # Input: Quantile ----\n selectInput(inputId = "Variable",\n label = "Variable :",\n choices = c(80, 85, 90, 95),\n selected = 90)),\n \n column(9,\n tabsetPanel(\n tabPanel("Table d\'\xc3\xa9v\xc3\xa8nements", verticalLayout(p(dataTableOutput("cars.table")),\n p(dataTableOutput("cars.table2"))))))\n )\n)\n\nserver <- function(input, output) {\n output$cars.table <- DT::renderDataTable({\n df <- summarise(group_by(cars, speed), n=mean(dist))\n df\n }, options=list(autoWidth = TRUE, scrollX=T, pageLength=5), rownames= FALSE)\n \n output$cars.table2 <- DT::renderDataTable({\n df1 <- summarise(group_by(cars, speed), n=max(dist))\n df1\n }, options = list(autoWidth = …Run Code Online (Sandbox Code Playgroud) 我有两个不同的数据框:P1和P2.这些数据帧中的每一个都有3个不同的列:N1,N2和值(mean_RMSE).N1和N2在15和120之间,对于线,N2总是低于N1.
如果我绘制P1,这就是我得到的:
p <- ggplot()
p <- (p
+ geom_tile(data=P1, aes(x=as.numeric(N1), y=as.numeric(N2), fill=mean_RMSE))
)
Run Code Online (Sandbox Code Playgroud)

但我的目标是在同一块情节上绘制P1和P2:
p <- ggplot()
p <- (p
+ geom_tile(data=P1, aes(x=as.numeric(N1), y=as.numeric(N2), fill=mean_RMSE))
+ geom_tile(data=P2, aes(x=as.numeric(N2), y=as.numeric(N1), fill=mean_RMSE))
)
Run Code Online (Sandbox Code Playgroud)

我不知道如何改变P2的颜色.例如,我想要P1的蓝色范围和P2的红色范围,以便轻松区分P1和P2.
scale_fill_gradient改变了P1和P2的颜色(我仍然无法区分它们),如果我在geom_tile中添加"color",我会有两个不同的轮廓:
p <- ggplot()
p <- (p
+ geom_tile(data=psSST_T[[1]], aes(x=as.numeric(N1), y=as.numeric(N2), fill=mean_RMSE, colour="red"))
+ geom_tile(data=psT_SST[[1]], aes(x=as.numeric(N2), y=as.numeric(N1), fill=mean_RMSE, colour="blue")))
Run Code Online (Sandbox Code Playgroud)

事实上,我想要P1和P2的两个不同的传说.
有人能帮我吗?