需要一些帮助才能使我走到终点。导入具有15个变量的1588个观测值的XLSX工作表。此时,实际上只对一列感兴趣,该列代表四个可能的值之一(正常,慢速,节点故障,登录失败)。该电子表格由测量网站可用性的应用程序生成。因此,目标是在饼图中简单显示这四个值。只是在标签上遇到了一些麻烦,我认为这是因为我手动说明了它们,并且我认为它必须基于值,因为它们的数量显然会在每个报告中发生变化。
我创建了一个变量“ lbls”来保存可能的值。它们的顺序基于table命令的输出。我认为这可能是错误的,相反,饼图的标签确实需要基于列中的值。
library(plotrix)
CN <- table(APP$urlStatus)
CN
lbls <- c("Login Failure","Node Failure","Normal","Slow")
pie3D(CN, labels = lbls,explode = 0.05,
main="APP STG Performance")
期望的结果是使标签与列中的值对齐。例如,如果“正常”列中的计数最高,则在饼图的该部分上应显示“正常”。我只需要确保标签确实与图表上显示的内容对齐即可。我不确定我是否正确,因为我仅根据table命令的输出确定其顺序。
head(AppMon)
# A tibble: 6 x 4
authenticationTime pageLoadTime urlStatus Totaltime
<dbl> <dbl> <chr> <dbl>
1 3.56 11.9 Slow 15.5
2 3.82 6.77 Normal 10.6
3 3.86 10.6 Normal 14.4
4 3.61 11.1 Normal 14.7
5 5.09 4.57 Normal 9.66
6 3.03 11.8 Normal 14.8
这就是我最终得到的
groupStatus <- data.frame("urlStatus"=c("Normal","Slow","GSSO Login Failed",
"Node Failure"))
KCW %>% group_by(urlStatus) %>%
summarise(n=n()) %>%
right_join(groupStatus) %>%
mutate(urlfrequency=n/sum(n,na.rm = TRUE)) %>%
ggplot(aes(x=reorder(urlStatus,-urlfrequency),y=urlfrequency,fill=urlStatus)) +
geom_bar(stat="identity") +
xlab("") + ylab("Frequency") + ggtitle("URL Weekly Status") +
labs(fill="Legend") +
theme(axis.text.x = element_text(angle = 45,hjust = 1)) +
scale_fill_manual(values = c("Normal"="DarkGreen",
"Slow"="Yellow",
"GSSO Login Failed"="Red",
"Node Failure"="Purple"))