資料
structure(list(VAR1 = 1:25, VAR2 = c(33151.4302619749, 30243.6061009354,
29075.4630823572, 27646.1136405244, 27227.44196157, 25910.8454253342,
26405.0119958585, 26167.0056585366, 25230.4079822407, 24976.0912545877,
25343.7017313494, 26159.0753483146, 26957.9730021768, 27759.9504648796,
29046.5695915796, 26946.8014342613, 28679.717757397, 28511.198514726,
31713.1021393953, 29817.0124623543, 29296.1166847962, 30338.1835634015,
31091.0104433836, 31006.5299473411, 31774.4212233181), VAR3 = c(0.159880385135182,
0.271631841511188, 0.32632879125533, 0.399844578596391, 0.421938705559609,
0.478323940647091, 0.48149816119631, 0.509588233124643, 0.551439379228908,
0.573370058778077, 0.580567765134673, 0.580904582887182, 0.576292211835652,
0.566802717164287, 0.588146883004088, 0.609420847255646, 0.5934221293271,
0.622638198647242, 0.600671162470947, 0.563000351965266, 0.641578758944993,
0.629095088526046, 0.608579189017581, 0.65220556730865, 0.63606478018115
)), class = "data.frame", row.names = c(NA, -25L))
我想用以下代碼繪制一個帶有雙 y 軸的圖。似乎左軸的限制與紅線不匹配,我想拉伸紅線,最低點位于圖的底部。
ggplot(df, aes(VAR1))
geom_point(aes(y = VAR2), size = 3, color = '#D62728')
geom_line(aes(y = VAR2), size = 1, color = '#D62728', lty = 3)
geom_point(aes(y = VAR3*5.1e4), size = 3, color = '#1F77B4')
geom_line(aes(y = VAR3*5.1e4), size = 1, color = '#1F77B4')
scale_y_continuous(name = 'VAR2', sec.axis = sec_axis(~./5.1e4, name = "VAR3"))

uj5u.com熱心網友回復:
以不同方式縮放資料(并添加截距,而不僅僅是標量)。
在前面,使用兩個軸(故意)混淆了線條之間的真實關系。從這張圖片中,人們可能會推斷出這兩個數字以某種方式重疊,但實際上范圍大不相同(VAR2是 25k-33k,VAR3是 0.16-0.65)。我知道你是故意重疊這些,我添加這個注釋是為了警告這種方法會引入視覺偏差。
zz <- c(22000, 18000)
ggplot(df, aes(VAR1))
geom_point(aes(y = VAR2), size = 3, color = '#D62728')
geom_line(aes(y = VAR2), size = 1, color = '#D62728', lty = 3)
geom_point(aes(y = zz[1] VAR3*zz[2]), size = 3, color = '#1F77B4')
geom_line(aes(y = zz[1] VAR3*zz[2]), size = 1, color = '#1F77B4')
scale_y_continuous(name = 'VAR2', sec.axis = sec_axis(~(. - zz[1]) / zz[2], name = "VAR3"))

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/396753.html
