這是我的資料,
| 年 | 物品 | X1 | 百分 |
|---|---|---|---|
| 2017年 | 一種 | 475 | 81.896 |
| 2017年 | 乙 | 580 | 81.896 |
| 2018年 | 一種 | 801 | 71.2 |
| 2018年 | 乙 | 1125 | 71.2 |
| 2019年 | 一種 | 590 | 62.1707 |
| 2019年 | 乙 | 949 | 62.1707 |
| 2020年 | 一種 | 646 | 29.949 |
| 2020年 | 乙 | 2157 | 29.949 |
我試圖在 ggplot 中制作雙 y 軸,
ggplot(df, aes(x = year, y = X1, fill = item))
geom_bar(stat = 'identity', position = 'dodge2')
geom_line(aes(x = year, y = percent))
scale_y_continous(sec.axis = sec_axis(~.*percent, name = "percent"))
但它一直顯示錯誤。
Error: transformation for secondary axes must be monotonic Run `rlang::last_error()` to see where the error occurred.
這是我的圖表

我想把它做成雙 y 軸(X1 的條形圖,百分比的折線圖)。有什么幫助嗎?謝謝!
uj5u.com熱心網友回復:
你可以試試這個方法
dummy <- data.frame(item = c("X","X","X","X","Y","Y","Y","Y"),year = c(2017,2018,2019,2020,2017,2018,2019,2020),
X1 = c(500,900,600,700,700,1200,900,1500),
X2 = c(15,18,23,11,26,23,13,15)
)
ggplot(dummy, aes(x = year, group = item, fill = item, color = item))
geom_bar(aes(y = X1), stat = "identity", position = 'dodge2')
geom_line(aes(y = X2*57.69231))
scale_y_continuous(sec.axis = sec_axis(~./57.69231, name = "percent"))

請注意,57.69231從
max(dummy$X1)/max(dummy$X2)
[1] 57.69231
對于df資料。
ggplot(df, aes(x = year, group = item, fill = item, color = item))
geom_bar(aes(y = X1), stat = "identity", position = 'dodge2')
geom_line(aes(y = percent*26.33828))
scale_y_continuous(sec.axis = sec_axis(~./26.33828, name = "percent"))

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/335778.html
上一篇:如何在MSAccessQuery中獲取運行扣減金額和運行余額?
下一篇:在R中使用ggplot2復制圖形
