【发布时间】:2021-01-24 19:44:04
【问题描述】:
在这段代码中,我想在循环内为每个 alpha 绘制 ggplot,y 轴采用 ylim(min(Pro_df$Relative_Error),max(Pro_df$Relative_Error)),图中的每个 alpha 单独,这意味着我想要7 格图。另外,我希望 geom_boxplot 在每个 alpha 的图表中单独显示。我试图通过下面的代码做到这一点,但它没有工作。
library(ggplot2)
library(gganimate)
Pro_df <- data.frame(
x = integer(0),
Alpha = numeric(0),
Relative_Error = numeric(0))
mu=7 # Mean Value
sigma2=4 # Variance value
for (alpha in c(0.001,0.01,0.025,0.05,0.1,0.25,0.375))
{
for (i in 1:13)
{
E_PDF=dnorm(i,mean=mu,sd=sqrt(sigma2))
Relative_Error=(5-E_PDF)/(1-E_PDF)
newrow <- data.frame(x = i,
Alpha = alpha,
Relative_Error = Relative_Error)
Pro_df <- rbind(Pro_df, newrow)
}
所有以前的代码都可以正常工作,现在我想绘制我的 ggplot 和 boxplot 所以在关闭第一个循环之前我编写了以下代码,但它没有按照我上面的问题的要求工作。
print(map2 <- ggplot() +
geom_boxplot(data = Pro_df,
aes( , y =Relative_Error),
colour = "red", size = .5))
print(ggplot(Pro_df, aes(x =x, y =Relative_Error, colour = Alpha)) +
geom_line() +
ylim(min(Pro_df$Relative_Error),max(Pro_df$Relative_Error)))
}
【问题讨论】:
标签: r for-loop ggplot2 nested-loops rbind