r - 有两个色阶ggplot
问题描述
我正在尝试为我的线条和点更改不同的颜色。我的数据被拆分,Arm
因此在每个时间点应该有两个点和两条线将它们连接到上一个和未来的时间点。
我可以让线条和点的颜色一起改变,但我希望线条是不同的颜色,但仍然基于Arm
。例如,我希望 Arm=1 的线条为浅蓝色,Arm=2 的线条为黄色,但要保持它们的点的颜色如下所示。这可能ggplot
吗?
任何帮助将非常感激。
代码:
ggplot(head(TOT, 12), aes(x=VisitNo, y=Mean)) +
geom_line(size=1.5, aes(color=as.factor(Arm))) +
geom_point(size=3, aes(color=as.factor(Arm))) +
scale_colour_manual(values = c("blue", "orange")) +
theme_bw()
数据:
TOT <- structure(list(Arm = c(1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L),
VisitNo = structure(c(0L, 6L, 12L, 16L, 24L, 36L, 0L, 6L, 12L, 16L, 24L, 36L),
label = "VisitNo", class = c("labelled", "integer")),
variable = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L),
.Label = c("PWB", "SWB", "EWB", "FWB", "AC"), class = "factor"),
Mean = c(25.3025326086957, 25.4365119047619, 25.8333333333333, 21.3452380952381,
26, 26.8235294117647, 25.2272727272727, 25.6172839506173,
25.6805555555556, 21.625976744186, 26.24, 26)),
row.names = c(NA, 12L), class = "data.frame")
解决方案
如果您只想让线条比点轻一点,可以使用alpha
使线条有点透明:
ggplot(head(TOT, 12), aes(x=VisitNo, y=Mean)) +
geom_line(size=1.5, aes(color=as.factor(Arm)), alpha = 0.4) +
geom_point(size=3, aes(color=as.factor(Arm))) +
scale_colour_manual(values = c("blue", "orange")) +
theme_bw()
推荐阅读
- charts - 簇柱形图中的条件格式
- modelica - 在 Dymola 中出现内存分配错误
- sqlite - 我想从表中按日期获取数据
- neo4j - 如何为一组节点和关系快速预热 Neo4J 页面缓存
- c++ - 如何缩放二进制数组以保持值
- javascript - 如何使用命名函数调用附加/分离事件?
- c# - 我不知道sql语法中的错误是什么
- python-3.x - 使用 resample 时出错,说“仅对 datetimeindex 有效”,即使我使用了 to_datetime 和 set_index
- c# - 文件 BinaryWrite 上的 HP Fortify 跨站点脚本问题
- docker - 如何在 OSX 上的 docker-machine 中显示来自 docker 容器的 gui 视图?