[英]Overlay two plots (ggplot)
我如何疊加AverageTime2 vs.AverageCost和AverageTime1 vs.AverageCost的散點圖。 (在ggplot中)?
Type<-c("a","b","c","d","e","f","g","h","i","j","k")
AverageTime<-c(12,14,66,123,14,33,44,55,55,6,66)
AverageTime2<-c(14,15,66,126,14,100,144,55,55,16,90)
AverageCost<-c(100,10000,400,20000,500000,5000,700,800,400000,500,120000)
AverageCost2<-c(10000,10000,4000,20000,5000,50000,7000,8000,40000,50000,120000)
df<-data.frame(Type,AverageTime,AverageTime2,AverageCost,AverageCost2)
您需要調整數據的形狀,以使AverageTime和AverageCost分別為一列,並具有一個單獨的列(稱為Type2
東西)來區分這兩種類型。
您可以使用dplyr,tidyr和stringr完成此操作:
library(dplyr)
library(tidyr)
library(stringr)
df_gather <- df %>%
gather(column, value, -Type) %>%
mutate(Type2 = str_detect(column, "2"),
column = str_replace(column, "2", "")) %>%
spread(column, value)
其中最重要的部分是將所有“平均”列收集到一個列中,然后區分它們(使用Type2
列),然后將它們重新散布到單獨的AverageCost和AverageTime列中。
之后,您可以簡單地執行以下操作:
ggplot(df_gather, aes(AverageTime, AverageCost, color = Type2)) +
geom_point()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.