我的目标是创建服务请求的散点图 X轴将是请求的日期 X值将显示从最旧到最新,从左到右的日期 Y轴将显示分配给请求的优先级 我希望将Y值从最高优先级(即1)排到最低 尚未优先排序的请求在该列中具有NA。
这是一个示例数据集(注意 - 原始数据文件id选项卡 - 在下面显示“NA”的位置没有值分隔,为清楚起见):
ID Priority DateCreated
549 NA 2018-02-15
548 NA 2018-02-15
547 3 2018-02-13
537 1 2018-01-17
536 5 2018-01-17
518 NA 2017-12-21
509 3 2017-11-27
500 2 2017-11-16
486 NA 2017-10-04
477 3 2017-08-08
475 1 2017-09-14
448 2 2017-07-21
444 5 2017-07-14
431 5 2017-06-30
425 1 2017-06-21
407 2 2017-05-26
395 4 2017-05-09
394 4 2017-05-09
374 4 2017-04-27
368 2 2017-04-21
352 NA 2017-04-03
328 4 2017-02-28
308 NA 2017-02-28
272 2 2016-10-05
213 4 2016-05-19
212 5 2016-05-19
200 2 2016-04-26
188 NA 2016-03-17
加载ggplot2和data.frame后,我用这段代码创建了图:
bl <- fread("backlog.txt")
bl$DateCreated <- as.Date(bl$DateCreated, "%Y-%m-%d")
bl$Priority <- as.integer(bl$Priority)
ggplot(bl, aes(x = DateCreated, y = reorder(Priority, -Priority))) +
geom_text((aes(label = ID)))
如果您重现此图,您将看到优先级为NA的项目显示在顶部。为了向我的客户展示,如果它们出现在底部则更清楚
我想我可以用一个“神奇的数字”(例如11)代替那些NAs,但我更喜欢一种不那么笨拙的解决方案。
有人已经处理过类似的问题吗?
感谢。
答案 0 :(得分:3)
这也是一种解决方法,但我认为比设置一个魔术数字更容易接受
bl$DateCreated <- as.Date(bl$DateCreated, "%Y-%m-%d")
bl$Priority[is.na(bl$Priority)] <- "No Data Available"
bl$Priority <- factor(bl$Priority,levels=c("No Data Available","1","2","3","4","5"))
ggplot(bl, aes(x = DateCreated, y = Priority)) + geom_text((aes(label = ID)))
https://stackblitz.com/edit/angular-rhioqt?file=app%2Fevent.service.ts