1
我正在尝试创建发布图形,并且在我的字段中绘图惯例对此信息(绘制听力图)非标准。在离散x轴上指定次要网格线/一些虚线网格线
某些样本数据:
subsetAudio <-
structure(list(Subject = c(1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L,
1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L,
2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L,
3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L,
1L, 2L, 3L), Frequency = c(250, 250, 250, 500, 500, 500, 750,
750, 750, 1000, 1000, 1000, 1500, 1500, 1500, 2000, 2000, 2000,
3000, 3000, 3000, 4000, 4000, 4000, 6000, 6000, 6000, 8000, 8000,
8000, 250, 250, 250, 500, 500, 500, 750, 750, 750, 1000, 1000,
1000, 1500, 1500, 1500, 2000, 2000, 2000, 3000, 3000, 3000, 4000,
4000, 4000, 6000, 6000, 6000, 8000, 8000, 8000), Ear = structure(c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("Left",
"Right"), class = "factor"), dBHL = c(10L, 30L, 20L, 10L, 45L,
20L, 25L, 50L, 20L, 30L, 45L, 25L, 45L, 45L, 60L, 50L, 45L, 60L,
55L, 45L, 60L, 60L, 50L, 60L, 65L, 70L, 65L, 65L, 75L, 70L, 30L,
35L, 25L, 10L, 45L, 25L, 30L, 50L, 25L, 30L, 50L, 30L, 40L, 45L,
45L, 50L, 55L, 60L, 60L, 55L, 60L, 60L, 60L, 65L, 65L, 75L, 60L,
65L, 85L, 65L)), .Names = c("Subject", "Frequency", "Ear", "dBHL"
), row.names = c(1L, 2L, 3L, 11L, 12L, 13L, 21L, 22L, 23L, 31L,
32L, 33L, 41L, 42L, 43L, 51L, 52L, 53L, 61L, 62L, 63L, 71L, 72L,
73L, 81L, 82L, 83L, 91L, 92L, 93L, 101L, 102L, 103L, 111L, 112L,
113L, 121L, 122L, 123L, 131L, 132L, 133L, 141L, 142L, 143L, 151L,
152L, 153L, 161L, 162L, 163L, 171L, 172L, 173L, 181L, 182L, 183L,
191L, 192L, 193L), class = "data.frame")
使这个困难的是,“频率”必须输入作为一个因素,在一个分立的X标尺,因为这些值的间距的。
用标记的所有离散点:
ggplot(subsetAudio, aes(x = factor(Frequency), y = dBHL, group = Subject)) +
theme_bw() +
facet_grid(~ Ear) +
geom_line(linetype = "dashed",size=0.8) +
scale_x_discrete(name = "Frequency (kHz)",labels=c("0.25", "0.5", "0.75", "1", "1.5", "2", "3", "4", "6", "8"), position = "top") +
scale_y_reverse(name = "Level (dB HL)", lim=c(120,-10),minor_breaks = seq(0 ,120, 5), breaks = seq(-10, 120, 10)) +
theme(panel.grid.major = element_line(colour = "black",size=0.1)) +
theme(panel.grid.minor = element_line(colour = "black",linetype="dashed",size=0.1)) +
theme(strip.text.x = element_blank()) +
geom_text(data=data.frame(x = 1.5, y = -6.25, label=c("a)", "b)"),
Ear=c("Left","Right")), aes(x,y,label=label), size=8,inherit.aes=FALSE)
这里的问题是,我需要在x尺度网格线为0.75,1.5,3,和6被打破。
我尝试了绘制 “主要” 网格线(1.25,5,1,2,4,8):
ggplot(subsetAudio, aes(x = factor(Frequency), y = dBHL, group = Subject)) +
theme_bw() +
facet_grid(~ Ear) +
geom_line(linetype = "dashed",size=0.8) +
scale_x_discrete(name = "Frequency (kHz)",breaks=c("250","500","1000","2000","4000","8000"),labels=c("0.25", "0.5", "1", "2", "4", "8"), position = "top") +
scale_y_reverse(name = "Level (dB HL)", lim=c(120,-10),minor_breaks = seq(0 ,120, 5), breaks = seq(-10, 120, 10)) +
theme(panel.grid.major = element_line(colour = "black",size=0.1)) +
theme(panel.grid.minor = element_line(colour = "black",linetype="dashed",size=0.1)) +
theme(strip.text.x = element_blank()) +
geom_text(data=data.frame(x = 1.5, y = -6.25, label=c("a)", "b)"),
Ear=c("Left","Right")), aes(x,y,label=label), size=8,inherit.aes=FALSE)
但是,我不知道如何在缺少点(0.75,1.5,3和6)添加虚线
任何有关如何解决此问题的建议?
最后,我需要在x轴上实线和虚线的组合:
0.25 - solid
0.5 - solid
0.75 - dashed
1 - solid
1.5 - dashed
2 - solid
3 - dashed
4 - solid
6 - dashed
8 - solid
您发布了所有数据吗?我从你发布的内容中获得了不同的情节。 –
对错误的诠释感到惋惜 - 'scale_x_discrete'没有一点小缺点,所以你可能需要做一些冒险的事。 –
@MikeH。更新后的完整数据 缺乏轻微的休息争论是我的障碍。我希望有人可以建议一个hacky的解决方法:) – JLC