這個問題在這里已經有了答案:
您可以通過洗掉一些值來改進第二個軸。
示例代碼:
ggplot(data=df.melt, aes(x=xVal, y=value, colour=variable))
geom_point(size=2)
geom_line(lwd=1)
xlab("xVal")
ylab("YValues")
xlim(1,16)
theme_cleveland()
scale_y_continuous(sec.axis = sec_axis(~., name = "secondary",
labels = c(8.7351324973658093, 12.113308515702567,
11.422800742900453, 10.774426268894192,
10.201545270338952, 9.8062403381144761,
9.4110034623398231, 9.1211408116407641),
breaks=c(8.7351324973658093, 12.113308515702567,
11.422800742900453, 10.774426268894192,
10.201545270338952, 9.8062403381144761,
9.4110034623398231, 9.1211408116407641) ))
theme(
axis.text.y.left = element_text(color = "blue"),
axis.text.y.right = element_text(color = "red", size=8),
)
陰謀:
![如何為資料中的一個類別繪制第二個 y 軸?[復制]](https://img.uj5u.com/2022/03/28/710ad86e931a48d58a97b34fa4c8a861.png)
樣本資料:
xVal = c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)
a = c(0.18340368127959822, 0.17496531617798133, 0.16772886654445848, 0.15934821062512169,
0.15390913489444036, 0.14578798884106348, 0.14524174121702108, 0.13958093302847951,
0.1365009715515553, 0.13337340345559975, 0.12995175856952607, 0.12583603207983862,
0.12180656145228715, 0.11824179486798418, 0.11524630600365712)
b = c(0.13544353787855531, 0.11345498050033079, 0.11449834060237293, 0.10479213576778054,
0.09677430524414686, 0.091990671548439179, 0.089965934807318487, 0.088711600335474206,
0.088923403079789909, 0.087989321310275717, 0.085424600757017272, 0.08251334730889931,
0.080178280060313953, 0.077717041621392688, 0.076638743116633837)
c = c(0.087351324973658093, 0.12113308515702567, 0.11422800742900453, 0.11264309199970789,
0.11390287790920843, 0.10774426268894192, 0.10587704437111881, 0.10474954948318291,
0.10568277685778472, 0.10201545270338952, 0.09939827283775747, 0.098062403381144761,
0.094110034623398231, 0.091211408116407641, 0.089369778116029489)
c=c*100
uj5u.com熱心網友回復:
考慮輔助軸的方法是它只是一個注釋。您正在繪制的實際資料需要進行轉換,以便與其他資料具有相同的比例。
在您的情況下,這意味著您需要將所有 c 值除以 100 來繪制它們,并繪制一個經過轉換以顯示大 100 倍的數字的輔助軸:
ggplot(within(df.melt, value[variable == 'c'] <- value[variable == 'c']/100),
aes(xVal, value, colour = variable))
geom_point()
geom_line()
scale_y_continuous(sec.axis = sec_axis(~.x*100, name = "Values (c)"))
theme(axis.text.y.right = element_text(color = "red"),
axis.ticks.y.right = element_line(color = "red"),
axis.title.y.right = element_text(color = "red"))
![如何為資料中的一個類別繪制第二個 y 軸?[復制]](https://img.uj5u.com/2022/03/28/b5da9194d7944638a317b057344487b1.png)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/450757.html
上一篇:使用geom_line()顯示來自一個資料幀的兩條線
下一篇:在R中使用熱圖重新排序x軸
