Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何使用sapply和ggplot2为数据帧中的每列绘制此图?_R_Ggplot2_Aesthetics - Fatal编程技术网

R 如何使用sapply和ggplot2为数据帧中的每列绘制此图?

R 如何使用sapply和ggplot2为数据帧中的每列绘制此图?,r,ggplot2,aesthetics,R,Ggplot2,Aesthetics,我想为下面名为df的数据框中的每一列数据绘制相同的图 编辑:为了澄清,我想为每一列(Cop、CopN、Harp)等绘制一个新的绘图,因为在我的实际数据中,我有很多(即,尝试了很多次,并在一个绘图上绘制网格)我希望能够为每一列创建下面的绘图 样本数据: day <- c('5-Aug', '5-Aug','5-Aug','10-Aug','10-Aug','10-Aug','17-Aug','17-Aug','17-Aug') station <- c(1:3,1:3,1:3) Cop

我想为下面名为df的数据框中的每一列数据绘制相同的图

编辑:为了澄清,我想为每一列(Cop、CopN、Harp)等绘制一个新的绘图,因为在我的实际数据中,我有很多(即,尝试了很多次,并在一个绘图上绘制网格)我希望能够为每一列创建下面的绘图

样本数据:

day <- c('5-Aug', '5-Aug','5-Aug','10-Aug','10-Aug','10-Aug','17-Aug','17-Aug','17-Aug')
station <- c(1:3,1:3,1:3)
Cop.Mean <- c(382, 1017, 1519, 698, 5398, 2458, 346, 5722, 6253)
CopN.Mean <- c(233, 167, 530, 36, 124, 20, 427, 1768, 1486)
Harp.Mean <- c(20, 482, 10, 8, 4014, 7, 4, 46, 1)
df <- data.frame(day,station,Cop.Mean, CopN.Mean, Harp.Mean)
不起作用。我也试过了

i=df[3:5] 
aes(x=station, y=i)

但我认为我可能没有使用正确的方法。有谁能帮我指出正确的方向吗?这似乎是一个非常有用的工具来学习如何做,我非常渴望这样做

正如巴蒂斯特所提到的,
重塑2
软件包将帮助您解决问题。以下是完整的代码:

library(reshape2)
df <- melt(df, id = c("day", "station"))
Cop.Plot <- ggplot(data = df, aes(x = station, y = value)) + geom_point()
Cop.Plot + facet_grid(variable ~ day)

否则,它们将按字母顺序排序。

正如巴蒂斯特所提到的,
重塑2
软件包将帮助您解决问题。以下是完整的代码:

library(reshape2)
df <- melt(df, id = c("day", "station"))
Cop.Plot <- ggplot(data = df, aes(x = station, y = value)) + geom_point()
Cop.Plot + facet_grid(variable ~ day)
library(ggplot2)
library(reshape2)
moltendf <- melt(df, id.vars=c("day","station"))
allplots <- ggplot(data=moltendf, aes(x=station, y=value)) +
             geom_point() + facet_grid(variable ~ day)

否则,它们将按字母顺序排序。

这就是您的想法吗

library(ggplot2)
library(reshape2)
moltendf <- melt(df, id.vars=c("day","station"))
allplots <- ggplot(data=moltendf, aes(x=station, y=value)) +
             geom_point() + facet_grid(variable ~ day)
library(reshape2)
ggdata <- melt(df,id=1:2,variable.name="Measure",value.name="Mean")
ggplot(ggdata,aes(x=station, y=Mean)) +
  geom_point() + 
  facet_grid(Measure~day)
library(重塑2)

ggdata这就是你的想法吗

library(reshape2)
ggdata <- melt(df,id=1:2,variable.name="Measure",value.name="Mean")
ggplot(ggdata,aes(x=station, y=Mean)) +
  geom_point() + 
  facet_grid(Measure~day)
library(重塑2)

ggdata在ggplot2中,通常使用长格式data.frame。在您的示例中,在将其传递到ggplot2中的ggplot2之前,您将首先
重塑2::melt(df,id=1:2)
,ggplot2通常使用长格式data.frame。在您的示例中,您将首先
reforme2::melt(df,id=1:2)
然后将其传递给GGPLOT2。实际上,我正在尝试为每个物种(Cop、CopN、Harp)绘制单独的绘图。请参阅我对上述问题的编辑-我的实际数据集中有太多的物种,无法做到这一点,尽管这看起来很有用,我可能会在其他地方使用,所以谢谢!实际上,我正试图为每个物种(Cop、CopN、Harp)绘制一个单独的图。请参阅我对上述问题的编辑-我的实际数据集中有太多的物种,无法做到这一点,尽管这看起来很有用,我可能会在其他地方使用,所以谢谢!paste0()应该是paste()吗?另外,请参见我问题中的编辑-我确实希望使用sapply或类似工具创建和保存多个绘图(每列数据一个)。非常感谢您的代码-但是,我不确定我需要用它做什么:当我输入它时,什么都不会发生。有什么我遗漏的吗?非常感谢。否,请参见粘贴0。另外,请检查您的工作目录以查看绘图的保存位置。我先前建议打印(a)
,我已在编辑中更正了此问题,因此我现在将使用我答案中的代码重试,它对我有效。:)啊哈!明亮的我对R和编程基本上是新手,迫不及待地想应用(tee-hee)你在其他地方给我展示的东西;plyr::d_ply(moltendf,“变量”、“%+%”,e1=allplots,.print=TRUE);dev.off()
。paste0()应该是paste()吗?另外,请参见我问题中的编辑-我确实希望使用sapply或类似工具创建和保存多个绘图(每列数据一个)。非常感谢您的代码-但是,我不确定我需要用它做什么:当我输入它时,什么都不会发生。有什么我遗漏的吗?非常感谢。否,请参见粘贴0。另外,请检查您的工作目录以查看绘图的保存位置。我先前建议打印(a),我已在编辑中更正了此问题,因此我现在将使用我答案中的代码重试,它对我有效。:)啊哈!明亮的我对R和编程基本上是新手,迫不及待地想应用(tee-hee)你在其他地方给我展示的东西;plyr::d_ply(moltendf,“变量”、“%+%”,e1=allplots,.print=TRUE);dev.off()。
library(reshape2)
ggdata <- melt(df,id=1:2,variable.name="Measure",value.name="Mean")
ggplot(ggdata,aes(x=station, y=Mean)) +
  geom_point() + 
  facet_grid(Measure~day)