相关疑难解决方法(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中单独缩放线和点的大小

代码如下:

set.seed(123)
d1=data.frame(x=runif(10),y=runif(10),z=runif(10,1,10))
d2=data.frame(x=runif(10),y=runif(10),z=runif(10,100,1000))
ggplot()+geom_point(aes(x,y,size=z),data=d1)+
geom_line(aes(x,y,size=z),data=d2)
Run Code Online (Sandbox Code Playgroud)

结果是这样的:

在此输入图像描述

点的大小太小,所以我想改变它的大小scale_size.然而,似乎线条和点都受到影响.所以我想知道是否有办法用单独的图例分别缩放线条和点?

r layer scale ggplot2

17
推荐指数
1
解决办法
5386
查看次数

使用ggplot_build和ggplot_gtable后,使用ggsave保存图形

我正在修改使用ggplot构建的图形,方法是更改​​ggplot_build生成的数据(原因类似于包含空间,因为geom_boxplot中填充美学中使用的缺失因子级别包含空间).据我所知,在这个主题上找到了帮助,我应该能够在结果上调用ggsave之前应用ggplot_gtable和arrangeGrob来保存结果(将grid.arrange()图保存到文件中).

然而,我得到一个错误"情节应该是一个ggplot2情节",也有这个简单的可再现的例子:

require('ggplot2')
require('gridExtra')
df <- data.frame(f1=factor(rbinom(100, 1, 0.45), label=c("m","w")), 
                  f2=factor(rbinom(100, 1, 0.45), label=c("young","old")),
                  boxthis=rnorm(100))
g <- ggplot(aes(y = boxthis, x = f2, fill = f1), data = df) + geom_boxplot()
dd <- ggplot_build(g)

# Printing the graph works:
print(arrangeGrob(ggplot_gtable(dd)))

# Saving the graph doesn't:
ggsave('test.png',arrangeGrob(ggplot_gtable(dd)))
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释为什么这不起作用?有没有办法在使用ggplot_build()修改数据后使用ggsave?

(我的软件包版本是gridExtra_0.9.1和ggplot2_0.9.3.1)

r ggplot2

12
推荐指数
1
解决办法
9185
查看次数

在面板上始终将ggplot标题居中居中而不是PLOT

默认对齐方式是使ggplot标题与plot.background元素左对齐。其他人指出,您可以使用plot.title = element_text(hjust = 0.5)来居中标题。

但是,我想使标题在整个面板中居中,而不是只与情节相对。过去,我通过修改hjust来推动标题以使其居中显示,从而实现了这一点,但是的值hjust取决于标题的长度,这使得在批量生产图形时进行设置非常繁琐。

是否可以始终将ggplot的标题元素设置为在panel.background中居中?

library(reprex)
library(tidyverse)
data(mtcars)

mtcars %>% 
  rownames_to_column(var = "model") %>% 
  top_n(8,wt) %>% 
  ggplot(aes(x =model, y = wt))+
  geom_col()+
  coord_flip()+
  labs(title="This title is left-aligned to the plot")
Run Code Online (Sandbox Code Playgroud)

mtcars %>% 
  rownames_to_column(var = "model") %>% 
  top_n(8,wt) %>% 
  ggplot(aes(x =model, y = wt))+
  geom_col()+
  coord_flip()+
  labs(title="This title is center-aligned to the plot width.")+
  theme(plot.title = element_text(hjust = 0.5))
Run Code Online (Sandbox Code Playgroud)

mtcars %>% 
  rownames_to_column(var = "model") %>% 
  top_n(8,wt) %>% 
  ggplot(aes(x =model, y = …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

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

标签 统计

ggplot2 ×4

r ×4

layer ×1

scale ×1

visualization ×1