在R中将2个图合并为1个图

在R中将2个图合并为1个图,r,ggplot2,plot,pie-chart,R,Ggplot2,Plot,Pie Chart,我想在一个图上画两个图。下面是创建绘图的代码。这些图是创建的,但我正试图将它们放在同一个图上。我不认为这些图是[plots]或[ggplots]类型。谢谢 library("fPortfolio") library('fPortfolio') data = SPISECTOR.RET asset = dim(data)[2] constraints <- c('minW[1:asset]=0','maxW[1:asset]=0.3') spec <- portf

我想在一个图上画两个图。下面是创建绘图的代码。这些图是创建的,但我正试图将它们放在同一个图上。我不认为这些图是[plots]或[ggplots]类型。谢谢

library("fPortfolio")
library('fPortfolio')
data = SPISECTOR.RET
asset = dim(data)[2]

constraints <- c('minW[1:asset]=0','maxW[1:asset]=0.3')
spec <- portfolioSpec()
setNFrontierPoints(spec) <- 25
setSolver(spec)<- "solveRquadprog"

frontier <-portfolioFrontier(data, spec, constraints)

Pont <- 6

#I don't know if GGplot is needed
library(ggplot2)

#plot First Point [I don't think this is a ggplot]
plot1 <- weightsPie(object = frontier, pos = Pont, labels = F, col = rainbow(asset),
                    box = F, legend = F, radius = 0.8)

#plot Second Point [I don't think this is a ggplot]
plot2 <- weightsPie(object = frontier, pos = Pont, labels = T, col = rainbow(asset),
                    box = TRUE, legend = T, radius = 0)

#I want to Put the two plots on the same plot
library("gridExtra")
grid.arrange(plot1, plot2, nrow=1, ncol=2)
库(“fPortfolio”)
库('fPortfolio')
数据=SPISECTOR.RET
资产=dim(数据)[2]

约束我知道它与
base R
有关,但它至少显示了一些输出。 我使用
layout
来安排绘图:

# your previous code

layout(matrix(c(1, 2), nrow = 1, byrow = TRUE))
layout.show(n=2)

plot1 <- weightsPie(object = frontier, pos = Pont, labels = F, col = rainbow(asset),
                    box = F, legend = F, radius = 0.8)

plot2 <- weightsPie(object = frontier, pos = Pont, labels = T, col = rainbow(asset),
                    box = TRUE, legend = T, radius = 0) 
#您以前的代码
布局(矩阵(c(1,2),nrow=1,byrow=TRUE))
布局显示(n=2)

plot1
class(plot1)
返回什么?如果它不包括
ggplot
,你是对的-它们不是ggplot,而且
grid.arrange
将不起作用它显示为
数值
。我想做的就是把两个图放到一个图中。谢谢。谢谢,我重新安排了
nrow
ncol
,效果很好。我可以将其保存为R中的绘图吗(使用ggplot)?您可以手动保存:导出->。。。或者可以这样做:
pdf(“arrangement”,onefile=FALSE)
然后放置布局和打印命令,然后以
dev.off()结束。绘图将存储到工作目录中。您可以将pdf更改为其他格式,例如。G如果你喜欢的话。