[英]Smooth line with Plotly in R
我有一個數據集,其中包含關於總工資和稅收楔子的兩列數據。您可以在下面的代碼行中看到數據:
SAMPLE_WAGES_TAX_WEDGE_TEST<-data.frame(
GROSS=c(10,20,30,40,50,60,70,80,90,100,200,300,400,500,600,700,800,900,1000),
TAXWEDGE=c(30.1,30.4,30.7,30.9,29.1,28.9,28.6,28.5,27.9,27.2,27.1,27.0,27.0,26.8,25,24,23,21,19)
)
所以我的目的是用 plotly 包繪制圖形,並制作一些類似於 ggplot2 中的函數 geom_smooth() 的平滑線。
library(data.table)
library(plotly)
dat <-as.data.table(SAMPLE_WAGES_TAX_WEDGE_TEST)
fig <- plot_ly(dat, x = ~GROSS, y = ~TAXWEDGE, name = "Before reform", type = 'scatter',
mode = 'lines',line = list(dash = "solid") )
我嘗試使用這行代碼,但我無法添加平滑線,所以任何人都可以幫助解決這個問題嗎?
有兩種方法可以解決這個問題:
1)將ggplot
object轉換為plotly
ggfig <- ggplot(dat, aes(x=GROSS, y=TAXWEDGE) ) +
geom_line() + geom_smooth()
ggplotly(ggfig)
2) geom_smooth()
是基於黃土平滑。 您需要先安裝黃土,然后在add_ribbons
中與plot_ly
object 一起使用。 查看這篇精彩的博客文章(最后一個示例),了解有關 loess 和其他平滑劑的實施指南。
參考並補充將平滑線添加到繪圖圖表中的答案,您可以直接使用plotly
和線標記規范中的shape = 'spline'
選項以獲得該類型的平滑(參見例如https://en. wikipedia.org/wiki/Spline_interpolation ):
plot_ly(SAMPLE_WAGES_TAX_WEDGE_TEST, x = ~GROSS, y = ~TAXWEDGE, type = 'scatter',
mode = 'lines', line = list(shape = 'spline', smoothing = 1.3))
其中可選參數smoothing
用於(略微)調整平滑度(參見https://plotly.com/r/reference/scatter/#scatter-line-smoothing )。 等效地,使用特定的add_lines
跟蹤函數,
plot_ly(SAMPLE_WAGES_TAX_WEDGE_TEST, x = ~GROSS, y = ~TAXWEDGE) %>%
add_lines(line = list(shape = 'spline', smoothing = 1.3))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.