ggplot2重新排序以分钟为单位的数据:秒格式

问题描述

数据集中的前五个条目(二十个条目):

>head(data)

 Name         SDC 
 <chr>        <Period>
1 Feuerman    1M 37S
2 Solis       1M 52S
3 Osborne     1M 47S
4 Frizzell    1M 58S
5 Moran       1M 59S

也:

> dput(head(data))
structure(list(Name = c("Feuerman","Solis","Osborne","Frizzell","Moran","Seth"),Deadlift = c(320,250,340,200),Medicine_Ball = c(11.6,8.8,12.5,9.2,9.7,9.1),HRP = c(46,39,36,33,42,31),SDC = new("Period",.Data = c(37,52,47,58,59,15),year = c(0,0),month = c(0,day = c(0,hour = c(0,minute = c(1,1,2)),Leg_Tuck = c(20,13,4,10,13),Run = new("Period",.Data = c(48,53,29),minute = c(13,12,17,16,16)),Total = c(570,508,513,470,410,452),Pass_Fail = structure(c(1L,1L,2L,1L),.Label = c("Pass","Fail"),class = "factor"),Date = structure(c(18522,18522,18522
),class = "Date")),row.names = c(NA,-6L),class = c("tbl_df","tbl","data.frame"))

如您所见,SDC的格式为minutes:seconds。我使用ms(data$SDC)来更改列类型。我正在尝试使用geom_col创建一个从最低时间到最高时间对SDC进行排序的图。我面临两个问题:

  1. 使用reorder命令时,时间未正确重新排序(请参见下图)。
  2. 正在使用hour:minute:second格式化轴,但我希望仅将其格式化为minute:second格式(另请参见下图)。

这是我生成情节的代码:

ggplot(data=data,aes(x=reorder(Name,-SDC),y=SDC,fill=Pass_Fail)) +
  scale_y_time(limits=c(0,200)) +
  scale_fill_manual(values=c('#00BFC4','#F8766D')) +
  labs(x='Soldier',y='Sprint Drag Carry Time',fill='Passed/Failed ACFT',title='Sprint Drag Carry Scores') +
  geom_col() +
  geom_text(size=3,aes(label = SDC),hjust=-0.04) +
  coord_flip() +
  theme_classic()

它产生以下图:

enter image description here

如您所见,重新排序不正确,并且轴未按照我希望的方式进行格式化。预先感谢您的帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)