r - GGplot - R - 颜色/组的第二轴 - 长格式
问题描述
不幸的是,我在 GGPlot 和辅助轴上苦苦挣扎。我创建了一个长格式的数据,其中包含我想在 GGplot 中显示的三个类别。1 应该显示为多图,1 是颜色 1 是线型。就像在图表中一样!
我现在遇到的问题是,例如,我不知道如何为“虚线”集成辅助轴。或者我可以只翻转数据并包括颜色的第二个轴,但我认为这是同样的问题。提前致谢!
这是我到目前为止的代码。
#test
cat1 <- c(rep("A",10),rep("B",10),rep("A",10),rep("B",10),rep("A",10),rep("B",10),rep("A",10),rep("B",10))
cat2 <- c(rep("A",10),rep("B",10),rep("B",10),rep("A",10),rep("A",10),rep("B",10),rep("B",10),rep("A",10))
steps <- c(seq(1,10),seq(1,10),seq(1,10),seq(1,10),seq(1,10),seq(1,10),seq(1,10),seq(1,10))
sz <- c(rep(1,40),rep(2,40))
data <- c(cumsum(exp(rnorm(10))),(rnorm(10))/100,cumsum(exp(rnorm(10))),(rnorm(10))/100,cumsum(exp(rnorm(10))),(rnorm(10))/100,cumsum(exp(rnorm(10))),(rnorm(10))/100)
df <- data.frame("Category1" = cat1,
"Category2" =cat2,
"Steps" = steps,
"Szenario" = sz,
"Value" = data)
ggplot(df,aes(x=Steps,y=Value,group=interaction(Category1,Category2),color=Category2,linetype=Category1))+
geom_line()+
facet_wrap(facets=vars(Szenario),scales="free")
解决方案
更新:
df1 <- df %>%
mutate(Value = ifelse(Category1=="B", Value*100, Value))
ggplot(df1,aes(x=Steps,y=Value,group=interaction(Category1,Category2),color=Category2,linetype=Category1))+
geom_line()+
facet_wrap(facets=vars(Szenario),scales="free") +
scale_y_continuous("Category1",
sec.axis = sec_axis(trans = ~ . * (min(df$Value)/max(df$Value)),
name = 'Category2'))
你可以scale_y_continuous
:
ggplot(df,aes(x=Steps,y=Value,group=interaction(Category1,Category2),color=Category2,linetype=Category1))+
geom_line()+
facet_wrap(~Szenario, scales = "free_y") +
scale_y_continuous("Category1",
sec.axis = sec_axis(trans = ~ . * (min(df$Value) / max(df$Value)),
name = 'Category2'))
推荐阅读
- github - Github Desktop 未检测到 db.sqlite
- c# - 从 AudioDevices 中获取扬声器
- docker - docker 引发 rpc 错误:代码 = 14 desc = grpc:连接不可用
- css - 多行 CSS 注释是否有最佳实践?
- javascript - Firebase 交易失败;模拟器组运行得很好
- docker - 在不同主机上获取可重现的 docker 层
- r - 下载处理程序不与观察事件一起使用
- r - 循环将 xts 转换为数据框
- spring-mvc - 使用 Angular 和 Spring 发布包含数组的对象
- django - Django celery, celery-beat: 无控制地填满队列,调度麻烦