在 ggplot2 中的条形图中绘制线条

时间:2021-06-10 08:21:00

标签: r ggplot2

我正在尝试通过条形图中的点绘制一条线,以查看速度变化是否存在差异并观察是否存在趋势,但是,尝试不同的方法并更改值时未出现该线在 aes 中也是如此。

代码片段:

File_Size <- c(571, 571, 571, 669, 669, 669, 898, 898, 898, 1700, 1700, 1700, 
               3800, 3800, 3800)

Run_Time <- c(0.786, 0.342, 0.571, 0.856, 0.369, 0.571, 0.890, 0.391, 0.607, 4.10, 1.23, 3.50, 4.25, 1.93, 3.90)

Algorithm <- c("Algo1", "Algo2" ,"Algo3", "Algo1", "Algo2" ,"Algo3","Algo1", "Algo2" ,"Algo3","Algo1", "Algo2" ,"Algo3","Algo1", "Algo2" ,"Algo3")

ggplot(time_complexity, aes(reorder(File_Size, Run_Time), Run_Time, fill = Algorithm)) + 
  geom_bar(stat = 'identity', position = 'dodge') + 
  geom_density(stat = 'identity')

1 个答案:

答案 0 :(得分:0)

我相信这可以解决您的问题

ggplot(time_complexity, aes(reorder(File_Size, Run_Time), Run_Time, fill = Algorithm)) + 
  geom_bar(stat = 'identity', position = 'dodge', alpha = 0.7) + 
  geom_density(stat = 'identity')+
  geom_line(aes(colour=Algorithm, group=Algorithm),
            size = 2)

您也可以只选择要绘制的一条线:

ggplot(time_complexity, aes(reorder(File_Size, Run_Time), Run_Time, fill = Algorithm)) + 
  geom_bar(stat = 'identity', position = 'dodge', alpha = 0.8) + 
  geom_density(stat = 'identity')+
  geom_line(data = time_complexity[time_complexity$Algorithm == 'Algo1',], 
            aes(reorder(File_Size, Run_Time), Run_Time, colour=Algorithm, group=Algorithm),
            size = 2)