【发布时间】:2020-12-08 14:43:11
【问题描述】:
我有一个使用 ggplot 绘制的 3 列数据框。我需要主轴和次轴,因为第二列中的数字远大于第一列中的数字。
df_q
# A tibble: 205 x 3
Days_From_First_Use Average_Response N_subjects
<drtn> <dbl> <int>
1 0 days 4.96 37
2 1 days 4.24 33
3 2 days 4.12 31
4 3 days 3.90 33
5 4 days 4.48 30
6 5 days 4.06 29
7 6 days 3.69 25
8 7 days 4.41 26
9 8 days 4.97 25
10 9 days 4.54 26
# ... with 195 more rows
我将第 2 列(主要 y 轴)和第 3 列(次要 y 轴)与第 1 列(x 轴)绘制如下:
beta <- 1 / round ( max(df_q["N_subjects"]) / 10, 0)
plt <- df_q %>%
ggplot(aes(x = as.numeric(Days_From_First_Use), y = Average_Response)) +
geom_line(linetype = 1, color = "red4", size = 1) +
geom_line(aes(y = beta * N_subjects), linetype = 12, color = "forestgreen", size = 1) +
scale_y_continuous( "Average Response Across All Subjects",
limits = c(0, 10), breaks = c(1, 3, 4, 6, 7, 9),
sec.axis = sec_axis(~ ./ beta, name = "Number of Responses")) +
labs(title = "Average Score and Number of Subjects vs Day From First Use",
x = "Days From First Use") +
theme(plot.title = element_text(size = 16, face = "bold", hjust = 0.5),
axis.title.x = element_text(size = 14, face = "bold"),
axis.title.y = element_text(size = 14, face = "bold"),
legend.title = element_text(size = 14, face = "bold"),
legend.position = "right")
# Need to show(plt) to make it visible in RStudio
show(plt)
不幸的是,没有可见的图例,我所有让它可见的尝试都失败了。我认为它与次要 y 轴有关,因为当我只有一个主要 y 轴时,图例是可见的。我将不胜感激有关我需要做什么以使其可见的一些指导。
在此致以诚挚的谢意
托马斯·飞利浦
【问题讨论】: