相关疑难解决方法(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万
查看次数

已经在for循环中制作的多个ggplot2图的网格

作为一个新的ggplot2用户,我有点失去了可能性,并努力在网上找到一个简单的答案,我认为是一个简单的问题.

我想在同一张纸上显示来自ggplot2的多个图,但是知道这些图来自for循环.

下面的例子没有编译,只是为了说明:

for(i in c(1:n)){                                   
  for(j in c(1:m)){
    ..........  # some data production
    p <- ggplot(df.all) + geom_bar(aes_string(x=class.names[i],fill=var.names[j])
}}
Run Code Online (Sandbox Code Playgroud)

在这里,p被覆盖了,但是我希望有一个矩阵或一个列表,我可以将所有p放在它们生成的位置,然后像一个简单的函数,如

display_in_a_grid(list_of_ggplot_plots)
Run Code Online (Sandbox Code Playgroud)

但据我所知,我无法制作一个绘图矩阵列表,也无法找到只接受一个参数输入的函数.

关于我看过的事情:

包gridExtra中的"arrangeGrob"不起作用,因为它需要每个绘图的显式名称(例如:p1,p2,p3,...),如http://code.google.com/p/gridextra/wiki/ arrangeGrob

ggplot2的"facet"方法不适合我的数据集的组织(或相反:p)

你有一个简单的方法来管理这个吗?

谢谢,

弗朗索瓦

r ggplot2 r-grid

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

ggplot中的grid.layout

我正在使用以下代码在惊人的包ggplot2中创建三组图:

w<-rnorm(100)
x<-rnorm(100)
y<-rnorm(100)
z<-rnorm(100)
g<-rep(factor(LETTERS[1:4]), 25)
d<-data.frame(g,w,x,y,z)

library(ggplot2)

pw<-ggplot(d, aes(w, y))
px<-ggplot(d, aes(x, y))
pz<-ggplot(d, aes(z, y))

pw+geom_point()+facet_grid(.~g, scales='fixed')+coord_equal()+stat_smooth(method='lm')
px+geom_point()+facet_grid(.~g, scales='fixed')+coord_equal()+stat_smooth(method='lm')
pz+geom_point()+facet_grid(.~g, scales='fixed')+coord_equal()+stat_smooth(method='lm')
Run Code Online (Sandbox Code Playgroud)

我会制作一个PDF文件,将这三组图中的每一组打印在同一页上.我的理解是,split.screen(c(3,1))并且par(mfrow=c(3,1))不能使用ggplot2图形,但是grid.layout()从网格包中可以使用,所以我试过:

pdf(file="test.pdf")
pushViewport(viewport(layout=grid.layout(3,1)))
print(pw+geom_point()+facet_grid(.~g, scales='fixed')+coord_equal()+stat_smooth(method='lm'))
print(px+geom_point()+facet_grid(.~g, scales='fixed')+coord_equal()+stat_smooth(method='lm'))
print(pz+geom_point()+facet_grid(.~g, scales='fixed')+coord_equal()+stat_smooth(method='lm'))
dev.off()
Run Code Online (Sandbox Code Playgroud)

但这最终是一个四页的PDF文件,第一页是空白的,每组数字跟随每页一个,x轴标签在底部向下.有没有办法在同一页面上制作包含所有图形集的PDF文件(并且没有空白页面引导!)?

r ggplot2

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

R和ggpairs中用户定义的调色板

我试图使用从散点图另一个调色板ggpairs来自GGally于R.库见这里类似的问题.

library(ggplot2)
library(GGally)
Run Code Online (Sandbox Code Playgroud)

作品

ggplot(iris, aes(x=Sepal.Width, colour=Species)) + stat_ecdf() + scale_color_brewer(palette="Spectral")
Run Code Online (Sandbox Code Playgroud)

ggplot2_1

也有效

ggplot <- function(...) ggplot2::ggplot(...) + scale_color_brewer(palette="Spectral")
ggplot(iris, aes(x=Sepal.Width, colour=Species)) + stat_ecdf()
Run Code Online (Sandbox Code Playgroud)

ggplot2_2

不行

ggplot <- function(...) ggplot2::ggplot(...) + scale_color_brewer(palette="Spectral")

ggpairs(iris, 
    columns=, c("Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width"),
    colour='Species',
    lower=list(continuous='points'), 
    axisLabels='none',  
    upper=list(continuous='blank')
)
Run Code Online (Sandbox Code Playgroud)

ggpairs1 但补充一点

putPlot(p, ggplot(iris, aes(x=Sepal.Length, colour=Species)) + stat_ecdf(), 1,1)
Run Code Online (Sandbox Code Playgroud)

添加正确颜色的图表.

ggpairs2

解决方法

之后我可以使用getPlot更改绘图,但这并不漂亮..

subplot <- getPlot(a, 2, 1) # retrieve the top left chart
subplotNew <- subplot + scale_color_brewer(palette="Spectral")
a <- putPlot(a, subplotNew, 2, 1) …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

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

标签 统计

ggplot2 ×4

r ×4

r-grid ×1

visualization ×1