[英]How to break x-axis while two y axes on each side with different scales?
我在下面提供了一個我試圖解決的問題的例子。 如您所見,我在圖表中間有 y 軸名稱。 有什么辦法可以刪除那些 y 軸名稱嗎? 提前致謝。
library(ggbreak)
library(patchwork)
library(ggplot2)
x = c(0,0.1,0.5, 2, 3, 5, 7, 10, 100)
y1 = c(892, 1059, 1004, 1020, 1097, 903, 881,1096, 910)
y2 = c(2070, 2183, 2381, 2406, 2675, 2639, 2662, 2523, 2453)
data = data.frame(x=x, y1 = y1, y2 = y2)
ggplot(data=data,aes(x = x ,y=y1))+
geom_point(aes(y=y1), color = "black")+
geom_point(data = data,aes(x=x,y=y2),colour="blue")+
scale_y_continuous("Y1", sec.axis = sec_axis(y2~ .*(5) , name = "Y2"))+
xlab("x") +
ylab("")+
expand_limits(x = 0, y = 0)+
scale_x_break(c(12, 90))
除了使用ggbreak
,一個選項是僅使用ggplot2
和patchwork
,它讓您“完全”控制軸的樣式,添加和刪除軸標簽,...:
library(patchwork)
library(ggplot2)
p <- ggplot(data = data, aes(x = x, y = y1)) +
geom_point(aes(y = y1), color = "black") +
geom_point(data = data, aes(x = x, y = y2), colour = "blue") +
labs(x = "x", y = NULL) +
expand_limits(x = 0, y = 0)
p1 <- p +
scale_y_continuous("Y1", sec.axis = sec_axis(y2 ~ . * (5), name = NULL)) +
coord_cartesian(xlim = c(NA, 12))
p2 <- p +
scale_y_continuous(name = NULL, sec.axis = sec_axis(y2 ~ . * (5), name = "Y2")) +
coord_cartesian(xlim = c(90, NA)) +
theme(axis.text.y = element_blank(), axis.ticks.y = element_blank())
p1 + p2
嘗試:
+theme(axis.title.y = element_blank())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.