绘制 facet_grid 条形图时缺失值的错误消息
Error message of missing values while plotting facet_grid bar plot
我正在使用 ggplot2 制作多面网格条形图。当我的数据集中没有缺失值时,我不断收到错误消息“Removed 15 rows containing missing values (geom_bar)
”。
这是一个可重现的例子,我在其中绘制了学校对冰淇淋口味的喜爱程度:
IDs <- seq(1,50)
IDs <- data.frame(rep(IDs, each = 5))
names(IDs)[1] <- "ID"
tastes <- c("Strawberry", "Vanilla", "Chocolate", "Matcha", "Sesame")
tastes <- data.frame(rep(tastes, times = 50))
#random numbers for schools
A <- runif(250, 1,5)
B <- runif(250, 1,5)
C <- runif(250, 1,5)
#merge
test <- cbind(IDs, tastes)
test <- cbind(test, A)
test <- cbind(test, B)
test <- cbind(test, C)
names(test)[2] <- "Flavour"
#make long
test_long <- melt(test,
id.vars = c("ID", "Flavour"))
#plot
plot <- ggplot(test_long) +
geom_bar(aes(x = Flavour,
y = value), stat="summary", fun=mean) +
scale_x_discrete(labels=c("C","M","S","S","V")) +
scale_y_continuous(name = "Rating", limits = c(1, 5)) +
facet_grid(. ~ variable) +
labs(title = "Likeability of Different Flavours by School") +
theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
panel.background = element_blank(), axis.line = element_line(colour = "black"))
plot
有谁知道为什么错误消息不断出现?谢谢!
条形从零开始,因此使用 scale_y_continuous(limits=c(1,5))
会在超过图 window 时修剪所有条形。您可以通过将下限设置为 0 来解决此问题。
或者,您可以将 scale_y_continuous()
(将数据修剪为仅绘图数据中的数据)替换为 coord_cartesian(ylim=c(1,5))
,后者绘制的数据会超出绘图 window。
?coord_cartesian
的帮助文件解释了两种不同的轴设置方法,这在绘制数据摘要或拟合平滑器时会产生很大的不同。
我正在使用 ggplot2 制作多面网格条形图。当我的数据集中没有缺失值时,我不断收到错误消息“Removed 15 rows containing missing values (geom_bar)
”。
这是一个可重现的例子,我在其中绘制了学校对冰淇淋口味的喜爱程度:
IDs <- seq(1,50)
IDs <- data.frame(rep(IDs, each = 5))
names(IDs)[1] <- "ID"
tastes <- c("Strawberry", "Vanilla", "Chocolate", "Matcha", "Sesame")
tastes <- data.frame(rep(tastes, times = 50))
#random numbers for schools
A <- runif(250, 1,5)
B <- runif(250, 1,5)
C <- runif(250, 1,5)
#merge
test <- cbind(IDs, tastes)
test <- cbind(test, A)
test <- cbind(test, B)
test <- cbind(test, C)
names(test)[2] <- "Flavour"
#make long
test_long <- melt(test,
id.vars = c("ID", "Flavour"))
#plot
plot <- ggplot(test_long) +
geom_bar(aes(x = Flavour,
y = value), stat="summary", fun=mean) +
scale_x_discrete(labels=c("C","M","S","S","V")) +
scale_y_continuous(name = "Rating", limits = c(1, 5)) +
facet_grid(. ~ variable) +
labs(title = "Likeability of Different Flavours by School") +
theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
panel.background = element_blank(), axis.line = element_line(colour = "black"))
plot
有谁知道为什么错误消息不断出现?谢谢!
条形从零开始,因此使用 scale_y_continuous(limits=c(1,5))
会在超过图 window 时修剪所有条形。您可以通过将下限设置为 0 来解决此问题。
或者,您可以将 scale_y_continuous()
(将数据修剪为仅绘图数据中的数据)替换为 coord_cartesian(ylim=c(1,5))
,后者绘制的数据会超出绘图 window。
?coord_cartesian
的帮助文件解释了两种不同的轴设置方法,这在绘制数据摘要或拟合平滑器时会产生很大的不同。