如何在 R 中仅制作四行中的一行虚线?
How do I make only one line, out of four lines, dashed in R?
我遇到了一个问题。我应该创建一个由四条线组成的线图,其中一条应该是虚线,而其他线应该保持连续。我设法做到了:
]
然而,这种方法的问题是图例并没有像情节中那样出现。这是我的命令行:
library(dplyr)
library(ggplot2)
DF$Distractor <- factor(DF$Distractor, levels = c("NF", "LSF", "HSF", "MASK")) ## Rearrange modalities
DF %>%
mutate(dummy = ifelse(Distractor != "MASK", 0, 1)) %>% ## MASK dashed ##
ggplot(aes(x = Lag, y = ., colour = Distractor, group = Distractor, linetype = dummy %>% as.factor())) +
guides(linetype = FALSE) + ## Drop the dummy legend ##
geom_line(size = .75) +
scale_colour_grey() +
theme_classic() +
labs(x = "Lag", y = "Probability of T2 report") +
ylim(0, 1)
数据如下:
Distractor Lag .
1 NF Lag1 0.4556818
2 NF Lag3 0.2113636
3 NF Lag8 0.4954545
4 LSF Lag1 0.4238636
5 LSF Lag3 0.2397727
6 LSF Lag8 0.5659091
7 HSF Lag1 0.4579545
8 HSF Lag3 0.3125000
9 HSF Lag8 0.4954545
10 MASK Lag1 0.4170455
11 MASK Lag3 0.2022727
12 MASK Lag8 0.4443182
是否有 a/another 解决方案来解决这个问题?我更喜欢干净利落的,而不是花里胡哨的。
一种解决方案是在指南选项中添加 override.aes
。下面的代码应该可以做到:
DF %>%
mutate(dummy = ifelse(Distractor != "MASK", 0, 1)) %>% ## MASK dashed ##
ggplot(aes(x = Lag, y = ., colour = Distractor, group = Distractor, linetype = dummy %>% as.factor())) +
guides(linetype = FALSE,color=guide_legend(override.aes=list(linetype=c(1,1,1,2)))) + ## Drop the dummy legend ##
geom_line(size = .75) +
scale_colour_grey() +
theme_classic() +
labs(x = "Lag", y = "Probability of T2 report") +
ylim(0, 1)
注意指南选项中添加的颜色。希望对您有所帮助。
我遇到了一个问题。我应该创建一个由四条线组成的线图,其中一条应该是虚线,而其他线应该保持连续。我设法做到了:
然而,这种方法的问题是图例并没有像情节中那样出现。这是我的命令行:
library(dplyr)
library(ggplot2)
DF$Distractor <- factor(DF$Distractor, levels = c("NF", "LSF", "HSF", "MASK")) ## Rearrange modalities
DF %>%
mutate(dummy = ifelse(Distractor != "MASK", 0, 1)) %>% ## MASK dashed ##
ggplot(aes(x = Lag, y = ., colour = Distractor, group = Distractor, linetype = dummy %>% as.factor())) +
guides(linetype = FALSE) + ## Drop the dummy legend ##
geom_line(size = .75) +
scale_colour_grey() +
theme_classic() +
labs(x = "Lag", y = "Probability of T2 report") +
ylim(0, 1)
数据如下:
Distractor Lag .
1 NF Lag1 0.4556818
2 NF Lag3 0.2113636
3 NF Lag8 0.4954545
4 LSF Lag1 0.4238636
5 LSF Lag3 0.2397727
6 LSF Lag8 0.5659091
7 HSF Lag1 0.4579545
8 HSF Lag3 0.3125000
9 HSF Lag8 0.4954545
10 MASK Lag1 0.4170455
11 MASK Lag3 0.2022727
12 MASK Lag8 0.4443182
是否有 a/another 解决方案来解决这个问题?我更喜欢干净利落的,而不是花里胡哨的。
一种解决方案是在指南选项中添加 override.aes
。下面的代码应该可以做到:
DF %>%
mutate(dummy = ifelse(Distractor != "MASK", 0, 1)) %>% ## MASK dashed ##
ggplot(aes(x = Lag, y = ., colour = Distractor, group = Distractor, linetype = dummy %>% as.factor())) +
guides(linetype = FALSE,color=guide_legend(override.aes=list(linetype=c(1,1,1,2)))) + ## Drop the dummy legend ##
geom_line(size = .75) +
scale_colour_grey() +
theme_classic() +
labs(x = "Lag", y = "Probability of T2 report") +
ylim(0, 1)
注意指南选项中添加的颜色。希望对您有所帮助。