相关疑难解决方法(0)

与ggplot2并排绘制

我想使用ggplot2包并排放置两个图,即相当于par(mfrow=c(1,2)).

例如,我希望以下两个图表以相同的比例并排显示.

x <- rnorm(100)
eps <- rnorm(100,0,.2)
qplot(x,3*x+eps)
qplot(x,2*x+eps)
Run Code Online (Sandbox Code Playgroud)

我需要将它们放在相同的data.frame中吗?

qplot(displ, hwy, data=mpg, facets = . ~ year) + geom_smooth()
Run Code Online (Sandbox Code Playgroud)

visualization r ggplot2

315
推荐指数
10
解决办法
33万
查看次数

在ggplot2中创建任意窗格

在基本图形中,我可以通过执行以下操作创建4个面板图形窗格:

par(mfrow=c(2,2))
for (i in 1:4){
  plot(density(rnorm(100)))
}
Run Code Online (Sandbox Code Playgroud)

结果

在此输入图像描述

我想用ggplot2做同样的事情,但我无法弄清楚如何做到这一点.我不能使用facet,因为我的真实数据,与这个简单的例子不同,是非常不同的结构,我想要两个图表是点图表,两个图表是直方图.如何在ggplot2中创建面板或窗格?

r ggplot2

25
推荐指数
4
解决办法
4815
查看次数

将多个复杂图形组合在一个图中作为面板

@backlin介绍

通过使用layout或,可以将多个简单绘图组合成单个图形中的面板par(mfrow=...).但是,更复杂的图表往往会在内部设置自己的面板布局,从而无法将其用作面板.有没有办法创建嵌套布局并将复杂的图形封装到单个面板中?

我有一种感觉,grid包可以实现这一点,例如通过在单独的视口中绘制面板,但无法弄清楚如何.这是一个演示问题的玩具示例:

my.plot <- function(){
    a <- matrix(rnorm(100), 10, 10)
    plot.new()
    par(mfrow=c(2,2))
    plot(1:10, runif(10))
    plot(hclust(dist(a)))
    barplot(apply(a, 2, mean))
    image(a)
}
layout(matrix(1:4, 2, 2))
for(i in 1:4) my.plot()
# How to avoid reseting the outer layout when calling `my.plot`?
Run Code Online (Sandbox Code Playgroud)

原创问题来自@alittleboy

我使用包中的heatmap.2函数gplots来生成热图.以下是单个热图的示例代码:

library(gplots)
row.scaled.expr <- matrix(sample(1:10000),nrow=1000,ncol=10)
heatmap.2(row.scaled.expr, dendrogram ='row',
          Colv=FALSE, col=greenred(800), 
          key=FALSE, keysize=1.0, symkey=FALSE, density.info='none',
          trace='none', colsep=1:10,
          sepcolor='white', sepwidth=0.05,
          scale="none",cexRow=0.2,cexCol=2,
          labCol = colnames(row.scaled.expr),                 
          hclustfun=function(c){hclust(c, method='mcquitty')},
          lmat=rbind( c(0, 3), c(2,1), c(0,4) ), …
Run Code Online (Sandbox Code Playgroud)

layout plot r heatmap

19
推荐指数
2
解决办法
2万
查看次数

R中的par(mfrow)用于ggplot

我有以下代码:

plotfn= function(u) {
  flt = filter(d, utensil ==u)
  ggplot(flt,aes(x=p)) + geom_histogram(binwidth = 0.5, position= position_dodge(0.5), color="black",fill="cadetblue4")+ ggtitle("Histogram of P")+labs( x="P", y="Number of Observations")
}
lapply(unique(d$utensil),plotfn)
Run Code Online (Sandbox Code Playgroud)

我试图做一个par(mfrow= c(3,3))在一个屏幕上获得所有9个情节,但这是行不通的。我必须使用ggplot。

r ggplot2

5
推荐指数
2
解决办法
1万
查看次数

R:由于UseMethod("getModelInfo",model)中的错误,多行不能正常工作

在R中,我准备了多个ggplot2数字,保存到这样的变量:

flashplot <- ggplot(flash, aes(x=flash$Year, y=flash$Proc)) 
+ stat_smooth(method="lm", formula = "flash$Proc ~ poly(flash$Year, 2, raw=TRUE)", n=14, level=0.9) 
+ geom_point(shape=19) + ylab("Percentage of total existing versions") 
+ xlab("Years of Existence") + scale_x_continuous(breaks = c(0,2,4,6,8,10,12,14,16,18,20))
Run Code Online (Sandbox Code Playgroud)

绘制单个图形按预期工作,但我想使用多色图绘制4个数字(2乘2),如R cookbook中所述.

当我收到错误时,我尝试了食谱中的例子,我应该会这样做,但它给了我同样的错误:

> multiplot(p1, p2, p3, p4, cols=2)
Error in UseMethod("getModelInfo", model) : 
  no applicable method for 'getModelInfo' applied to an object of class "c('gg', 'ggplot')"
Run Code Online (Sandbox Code Playgroud)

我,使用R 2.15.2在Windows 7下,和最新的软件包ggplot2coefplot:

> sessionInfo()
R version 2.15.2 (2012-10-26)
Platform: i386-w64-mingw32/i386 (32-bit) …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

3
推荐指数
1
解决办法
8989
查看次数

标签 统计

r ×5

ggplot2 ×4

heatmap ×1

layout ×1

plot ×1

visualization ×1