当创建一个由两个图组成的集合时,在lapply循环中的打印将在RStudio绘图面板中打印两次。
x=1:7
y=1:7
df1 = data.frame(x=x,y=y)
x=10:70
y=10:70
df2 = data.frame(x=x,y=y)
db <- list(df1, df2)
# Given a data frame, the function below creates a graph
create.graph <- function (df){
p <- ggplot(df,aes(x,y))+geom_point()
# here goe
我有一个函数,它根据mtcar中“齿轮”的唯一值创建一个情节列表。
library(datasets)
library(magrittr)
library(ggplot2)
library(dplyr)
make_plots <- function(data) {
### create list of plot objects for every unique value of 'gear' (from mtcars)
p_list <- lapply(sort(unique(data$gear)), function(i) {
ggplot
我想知道是否在ggplot2包或另一个包中有一个函数,或者在R中有一种for循环的方式,可以从不同的变量/数据帧的列创建不同的图形,而不需要对每个变量进行编码,每个图形对应一个变量。例如,如果我有一个名为df的数据帧,其中有几列:id (数据键)、v1、v2、...、v10。我想在Y轴上绘制不同的变量(从v2到v8),在X轴上画v1,但不要对每个变量重复相同的代码。 # For 1 plot, how could I code for various plots?
plot_v2 <- df %>% # (plot_name as column name, i.e plo
我需要将几个地块放置在彼此下面,我希望边距和图形区域的宽度是相同的,所以它们整齐地对齐。请注意,我需要两个单一的情节,而不是一个联合的情节。我想将每个文件保存在一个单独的PNG文件中。我只想他们的结构(边缘,图形区域大小)是相同的。
library(ggplot2)
d <- data.frame(label=c("some very longe label with lots of text",
"another long label with lots of text",
这个循环创建了一个包含3个ggplot的列表,但是因为x和xend的参数依赖于循环的索引,所以令人沮丧的是:
DF <- data.frame(column1=c(1,2,3,4,5), column2=c(4,5,6,7,8))
list_of_ggplots <- list()
for (num in seq(1:3)){
p <- ggplot()
p <- p + geom_segment(data=DF, aes(x=column1[num], xend=column2[num], y=1, yend=1))
list_of_ggplots
我有一个关于在for循环中创建ggplot2图,根据迭代重命名它们,然后在网格中排列这些图的问题。
我想做一些类似于这个虚拟示例的事情
library(ggplot2)
a = c(1, 2, 3)
b = c(4, 5, 6)
for ( i in c(1:5)){
x = i*a
y = i*b
p = qplot(x, y)
... do something to rename p as plot_i...
}
..。将plot_1 ... plot_6绘制成2 x 3的网格
有什么建议吗?