微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

绘制 facet_grid 条形图时缺失值的错误消息

如何解决绘制 facet_grid 条形图时缺失值的错误消息

我正在使用 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,5)
C <- runif(250,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","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)) 会在所有条形超出绘图窗口时对其进行修剪。您可以通过将下限设置为 0 来解决此问题。

或者,您可以用 scale_y_continuous() 替换 coord_cartesian(ylim=c(1,5))(将数据修剪为仅绘图数据中的数据),?coord_cartesian 将绘制超出绘图窗口的数据。

import { Injectable } from '@angular/core'; import { filter,first } from 'rxjs/operators'; import { ActivatedRoute,NavigationEnd,Params,Router,RouterEvent } from '@angular/router'; import { ReplaySubject } from 'rxjs'; @Injectable({ providedIn: 'root' }) export class RouteParamsService { private routeParamsChangeSource = new ReplaySubject<Params>(); routeParamsChange$ = this.routeParamsChangeSource.asObservable(); constructor(private router: Router,private route: ActivatedRoute) { this.router.events .pipe(filter((event: RouterEvent) => event instanceof NavigationEnd)) .subscribe(() => { let r = this.route; while (r.firstChild) r = r.firstChild; r.params.pipe(first()).subscribe((params: Params) => { this.routeParamsChangeSource.next(params); }); }); } } 的帮助文件对设置轴的两种不同方法进行了一些解释,这在绘制数据摘要或拟合平滑器时会产生很大的不同。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。