您好,登錄后才能下訂單哦!
本篇內容介紹了“R語言可視化美化折線圖、平滑曲線及路徑圖的方法”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
今天跟大家講關于路徑圖、平滑曲線與折線圖及其美化。
這里涉及到三個設計線條的特殊圖層函數:
geom_smooth()、geom_path()、geom_line()
下面分別講解:
關于geom_smooth():平滑曲線
ggplot(mpg,aes(cty,hwy))+geom_point()+geom_smooth()
平滑曲線專門用于對于散點圖趨勢的擬合,geom_smooth函數內部有默認的擬合規則(根據統計統計算法計算出的擬合規則,而非實際的點)。
其中的括號內有默認的method參數,代表著擬合曲線所用到的統計算法,se代表著誤差范圍。(就是圍繞著擬合直線的顏色帶)。
method中的類型常見的有lm\glm\gam\loess\rlm等,當數據集記錄小于1000時,method的默認參數即為loess,大于1000時則為gam。
本例所用到mpg數據集只有234個記錄,使用geom_smooth參數應該默認使用的方法參數就是loess,這里我們可以檢驗一下:
ggplot(mpg,aes(cty,hwy))+geom_point()+geom_smooth(method="loess")
誤差范圍的顏色帶是可以通過se參數進行控制的,默認se=TRUE,這里設置為se=FALSE。
ggplot(mpg,aes(cty,hwy))+geom_point()+geom_smooth(method="loess",se=FALSE)
接下來我們依次嘗試其他幾個擬合曲線:
ggplot(mpg,aes(cty,hwy))+geom_point()+geom_smooth(method="lm",se=FALSE)
ggplot(mpg,aes(cty,hwy))+geom_point()+geom_smooth(method="glm",se=FALSE)
ggplot(mpg,aes(cty,hwy))+geom_point()+geom_smooth(method="gam",se=FALSE)
看上去沒啥太大區別,可能是數據集太小的原因吧。
路徑圖:geom_path()
以上函數參數可以畫出路徑圖,其實就是根據每一個數據點的出現先后順序,依次鏈接所有點所形成的路徑:
ggplot(mpg,aes(cty,hwy))+geom_path()
這種圖乍看起來沒啥意義,但是在某些特殊場景下,卻能夠表達出非常重要的信息,比如候鳥遷徙、病毒傳播、甚至飛機航線等領域。
ggplot(mpg,aes(cty,hwy))+geom_point()+geom_path()
可以同時添加點函數和路徑函數,制作出帶有點標記的路徑圖。
ggplot(mpg,aes(cty,hwy))+geom_point(colour="steelblue")+geom_path(colour="red")
每一個圖層函數內的圖層對象都是可以單獨定義顏色的。
折線圖:geom_line()
以上是直線圖的圖層函數;它與路徑圖的唯一區別就是,在連接各點之前,會按照x軸數據對總體升序排列,所以最終的連線是非常清晰的順序折線,不會存在交叉。(而路徑圖則按照實際數據點在數據集中出現的先后順序依次聯結)。
ggplot(mpg,aes(cty,hwy))+geom_line(colour="steelblue")
ggplot(mpg,aes(cty,hwy))+geom_point(colour="black")+geom_line(colour="steelblue")
為了更加明顯的看出兩者區別,我們換一個變量:
ggplot(CO2,aes(uptake,conc))+geom_line(colour="steelblue")+geom_point(colour="black")
ggplot(iris,aes(Sepal.Length,Sepal.Width))+geom_line(colour="steelblue")+geom_point(colour="white",shape=21,size=4,fill="Tomato")
加入分類變量后的折線圖:
ggplot(iris,aes(Sepal.Length,Sepal.Width,colour=Species))+geom_line()+geom_point(colour="white",shape=21,size=4,fill="Tomato")
默認的折線線條位置參數應該position=identity,我們也可以嘗試使用其他幾個參數
ggplot(iris,aes(Sepal.Length,Sepal.Width,colour=Species))+geom_line(position="identity")+geom_point(colour="white",shape=21,size=4,fill="Tomato")
ggplot(iris,aes(Sepal.Length,Sepal.Width,colour=Species))+geom_line(position="stack")+geom_point(colour="white",shape=21,size=4,fill="Tomato",position="stack")
ggplot(iris,aes(Sepal.Length,Sepal.Width,colour=Species))+geom_line()+facet_grid(.~Species)+geom_point (colour="white",shape=21,size=4,fill="Tomato") #分面組圖:
ggplot(iris,aes(Sepal.Length,Sepal.Width,colour=Species))+geom_line()+facet_grid(.~Species)+geom_point (colour="white",shape=21,size=4,fill="Tomato") +theme_wsj("rgby","")+scale_colour_wsj()+ggtitle("line plot")+guides(colour=guide_legend(title=NULL))
ggplot(iris,aes(Sepal.Length,Sepal.Width,colour=Species))+geom_line()+facet_grid(.~Species)+geom_point (colour="white",shape=21,size=4,fill="Tomato") +theme_economist()+scale_colour_economist()+ggtitle("line plot")+guides(colour=guide_legend(title=NULL))
“R語言可視化美化折線圖、平滑曲線及路徑圖的方法”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。