欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

R語言ggplot2包之坐標軸詳解

 更新時間:2021年04月17日 14:57:38   作者:zx403413599  
這篇文章主要介紹了R語言ggplot2包之坐標軸詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

引言

我們還可以對圖形中的坐標軸進行處理,包括x、y軸對換、設定坐標軸范圍、刻度線修改與去除等等。要想對圖形玩得轉,坐標軸處理精通不可或缺。

坐標軸對換

我們使用coord_flip()函數來對換坐標軸。

library(ggplot2)
library(gcookbook)
ggplot(PlantGrowth, aes(x=group, y=weight)) + geom_boxplot()
ggplot(PlantGrowth, aes(x=group, y=weight)) + geom_boxplot() + coord_flip()

置換x、y軸時有時候會導致某一坐標軸的坐標被逆轉。比如說原x軸的數據是從左往右閱讀的,在對換后,原來數據會從下往上給呈現。有時這是個問題。如果x是因子,我們可以對其用帶參數limits=rev(levels(…))的函數scale_x_discrete()進行修正。

如果是連續(xù)變量,我們可以使用函數scale_y_reverse 或者scale_x_reverse來逆轉坐標軸。

如果我們想改變分類變量的顯示順序,可以設置scale_x_discrete() or scale_y_discrete()函數就行。

#因子坐標軸
ggplot(PlantGrowth, aes(x=group, y=weight)) + geom_boxplot() + coord_flip() +
scale_x_discrete(limits=rev(levels(PlantGrowth$group)))
#連續(xù)變量的逆轉
ggplot(PlantGrowth, aes(x=group, y=weight)) + geom_boxplot() + scale_y_reverse()
#改變分類變量順序
ggplot(PlantGrowth, aes(x=group, y=weight)) + geom_boxplot()+scale_x_discrete(limits=c("trt1","ctrl","trt2"))


設置x,y軸的連續(xù)變量范圍

我們可以使用xlim()和ylim設置x、y軸的最大最小值。

p <- ggplot(PlantGrowth, aes(x=group, y=weight)) + geom_boxplot()
p + ylim(0, max(PlantGrowth$weight))
#ylim()是對scale_y_continuous()的快速實現。
#其中breaks用來控制刻度。
p + scale_y_continuous(limits=c(0, 10), breaks=NULL)

設置x、y軸刻度相對比例

我們可以設置x、y軸刻度的相對比例,可以是1:1,即一致的長度。也可以讓其中一個軸的刻度變得更長一些,或者說兩個刻度線之間的距離更大一些。

sp <- ggplot(marathon, aes(x=Half,y=Full)) + geom_point()
#1:1
sp + coord_fixed() +
scale_y_continuous(breaks=seq(0, 420, 30)) +
scale_x_continuous(breaks=seq(0, 420, 30))
#1:2 x軸刻度長度比y軸刻度長度
sp + coord_fixed(ratio=1/2) +
scale_y_continuous(breaks=seq(0, 420, 30)) +
scale_x_continuous(breaks=seq(0, 420, 15))

設置刻度線的位置

ggplot()函數對處理刻度線位置非常擅長,只要改變刻度的間隔即可(這里的刻度線指的是大刻度線)。

如果坐標軸上變量是連續(xù)變量,則不會出現小刻度線。

#連續(xù)變量
ggplot(PlantGrowth, aes(x=group, y=weight)) + geom_boxplot() +
scale_y_continuous(breaks=c(4, 4.25, 4.5, 5, 6, 8))
#看到沒有,刻度線位置已經按照breaks設置的參數改變了
#如果是離散變量,則使用scale_x_discrete函數
#通過limit函數來控制標簽的個數和順序
ggplot(PlantGrowth, aes(x=group, y=weight)) + geom_boxplot() +
scale_x_discrete(limits=c("trt2", "ctrl"))

去除刻度線、刻度標簽和網格線

如果想去除刻度標簽,我們使用theme(axis.text.y = element_blank())(如果針對x,參數y改成x即可。

如果想去除刻度線,在theme函數中使用axis.ticks.y = element_blank(),如果x、y軸都想去除axis.ticks.y改成axis.ticks即可。

有時候網格線讓整個圖畫顯得復雜,我們也可以對此進行去除。breaks的參數值設為NULL就行了。

p <- ggplot(PlantGrowth, aes(x=group, y=weight)) + geom_boxplot()
#去除刻度標簽
p + theme(axis.text.y = element_blank())
#去除刻度線
p + theme(axis.ticks.y = element_blank(), axis.text.y = element_blank())
#去除網格線
p + scale_y_continuous(breaks=NULL)

改變刻度標簽的內容和顯示效果

我們不僅可以改變刻度標簽的位置,還可以對標簽內容進行修改。

hwp <- ggplot(heightweight, aes(x=ageYear, y=heightIn)) +
geom_point()
hwp + scale_y_continuous(breaks=c(50, 56, 60, 66, 72),
labels=c("Tiny", "Really\nshort", "Short",
"Medium", "Tallish"))
#值得注意的是,若標簽太長,可以用\n將文本放到下一行進行顯示

為了改變刻度標簽的顯示效果,我們可以在theme函數中設置element_text參數中angle的值。

bp <- ggplot(PlantGrowth, aes(x=group, y=weight)) + geom_boxplot() +
scale_x_discrete(breaks=c("ctrl", "trt1", "trt2"),
labels=c("Control", "Treatment 1", "Treatment 2"))
#垂直顯示
bp + theme(axis.text.x = element_text(angle=90, hjust=1, vjust=.5))
#換個角度顯示,angle是控制刻度標簽顯示的角度
bp + theme(axis.text.x = element_text(angle=30, hjust=1, vjust=1))
#hjust和vjust是為了控制刻度標簽在水平方向和垂直方向的位置

改變坐標軸標簽內容

剛才改變的是刻度標簽,我們有時還想改變各個坐標軸中標簽內容。

hwp + xlab("Age in years") + ylab("Height in inches")#hwp在上面例子中已經定義過
#你也可以這么改,兩者等價
hwp + labs(x = "Age in years", y = "Height in inches")

我們也可以去除各個坐標軸標簽。

hwp+ theme(axis.title.x=element_blank())

改變坐標軸標簽的顯示效果也同樣方便。

hwp + ylab("Height\n(inches)") +
theme(axis.title.y=element_text(angle=90, face="italic", colour="darkred",
size=14))
#這也同樣適用于改變刻度線標簽的字體、顏色大小。

使用對數坐標軸

我們也可以把坐標軸改變成對數坐標軸形式,使用scale_x_log10() scale_y_log10()。

library(MASS)
p <- ggplot(Animals, aes(x=body, y=brain, label=rownames(Animals))) +
geom_text(size=3)
#只顯示標簽線
p + scale_x_log10() + scale_y_log10()

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關文章

  • R語言-t分布正態(tài)分布分位數圖的實例

    R語言-t分布正態(tài)分布分位數圖的實例

    這篇文章主要介紹了R語言-t分布正態(tài)分布分位數圖的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • 詳解R語言實現前向逐步回歸(前向選擇模型)

    詳解R語言實現前向逐步回歸(前向選擇模型)

    本文主要介紹了詳解R語言實現前向逐步回歸,從實現原理開始,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • 使用R語言將表格導出為CSV文件簡單示例

    使用R語言將表格導出為CSV文件簡單示例

    這篇文章主要給大家介紹了關于使用R語言將表格導出為CSV文件的相關資料,CSV(逗號分隔值)是一種常見的文本文件格式,廣泛用于數據交換,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-02-02
  • R語言 出現矩陣/缺失值的解決方案

    R語言 出現矩陣/缺失值的解決方案

    這篇文章主要介紹了R語言 出現矩陣/缺失值的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • R語言ggplot2邊框背景去除的實現

    R語言ggplot2邊框背景去除的實現

    這篇文章主要介紹了R語言ggplot2邊框背景去除的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • 使用R語言繪制散點圖結合邊際分布圖教程

    使用R語言繪制散點圖結合邊際分布圖教程

    這篇文章主要介紹了使用R語言利用ggplot繪制散點圖,并且在圖像的兩邊繪制邊際分布圖(包括邊際直方圖與邊際密度函數)我們這里介紹兩種方法進行繪制
    2021-11-11
  • R語言 如何保留大于或小于特定數值的行

    R語言 如何保留大于或小于特定數值的行

    這篇文章主要介紹了R語言實現保留大于或小于特定數值的行操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • R語言數據框中的負索引介紹

    R語言數據框中的負索引介紹

    這篇文章主要介紹了R語言數據框中的負索引介紹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • R語言寫2048游戲實例講解

    R語言寫2048游戲實例講解

    這篇文章主要介紹了R語言寫2048游戲實例講解,文中將代碼列舉了出來,有感興趣的同學可以學習下
    2021-03-03
  • 使用R中merge()函數合并數據的方法

    使用R中merge()函數合并數據的方法

    這篇文章主要介紹了使用R中merge()函數合并數據,本文詳細介紹R中merge()函數參數及合并數據類型,利用sql的表連接概念進行類比,簡單易懂,需要的朋友可以參考下
    2023-03-03

最新評論