R: plot 繪圖各種參數,以及 legend。。


###################################################

問題:基礎繪圖plot   18.4.30

         plot函數,基礎繪圖的各個參數?

解決方案:

       cars <- c(1, 3, 6, 4, 9); 

  trucks <- c(2, 5, 4, 5, 12); 

  suvs <- c(4,4,6,6,16)

         g_range <- range(0, cars)  #range()產生一個范圍,本例即0-16

plot(cars,

     main = "",

     sub = "", #font.sub="", cex.sub=2, col.sub="",

             # font: 設置文字的格式,1是默認值,就是普通的文字,2代表加粗,3代表斜體, 4代表加粗+斜體,

     xlab = "",

     ylab = "",

       # plot(cars, type="o", col="blue", ylim=g_range, ann=FALSE, axes=FALSE)

       # ann=F不繪制標題, 后面才有title(main="", col.main="red", font.main=2, cex.main=2, adj="")

              #后面才有title(xlab="", ylab="", col.lab=rgb(0,0.5,1), font.lab=1, cex.lab=1.5, adj="")     

       # axes=F表示不繪制坐標軸,后面才能添加axis設置坐標軸;注意只會影響到是否畫出坐標軸線和刻度,不會影響坐標軸標題

              #axis(1, at=1:5, lab=c("Mon","Tue","Wed","Thu","Fri"))#1,2,3,4表示坐標軸的下 左 上 右側。

              #axis(2, las=1, at=4*0:g_range[2], col.axis="", font.axis=2, cex.axis="")

                  # at=4*0:g_range[2]表示刻度范圍為(0:g_range[2]),每4個單位顯示一個刻度

                  # las=表示文字的方向,是平行於y軸還是垂直於它

     xlim = c(1,5),

     ylim = c(min(cars),max(cars)),

     type = "o",

        #type設置畫圖的類型,有九種可能的取值,分別代表不同的樣式:

        # (1)'p'畫點;(2)'l'畫線5;(3)'b'同時畫點和線,但點線不相交;(4)'c'將type= 'b'中的點去掉,只剩下相應的線條部分;

        # (5)'o'同時畫點和線,且相互重疊,;(6)'h'畫鉛垂線;(7)'s'畫階梯線,從一點到下一點時,先畫水平線,再畫垂直線;

        # (8)'S'也是畫階梯線,先畫垂直線,再畫水平線;(9)'n'作一幅空圖,沒有任何內容,但坐標軸、標題等其它元素都照樣顯示。

     pch = 2,

     cex = 1.2, #字體的放大倍數

     col = "blue"

       #asp= 圖形縱橫比 y=x;

       # log 坐標是否取對數,TRUE或者FALSE;

     )

討論擴展:

         title(main="Autos",font.main=4,cex.main=2,col.main="red",)

                   # font.main用於控制字體,分別為1: 正常,2: 斜體,3: 粗體,4: 粗斜體;  此三項可同作用於main、sub、xlab、ylab

                   # cex.main 設置字的大小,是原大小的多少倍。

                   # col.main  設置main的顏色

         legend(1, g_range[2], c("cars","trucks"), cex=0.8, col=c("blue","red"), pch=21:22, lty=1:2, bg="grey", title="more", title.col="red") 

                   # 添加內部圖例,legend(,1,g_range[2])表示圖例左上角的坐標;c("cars","trucks")標簽內容,cex=0.8字體的放大倍數,  

         text(x = c(3, 4), y = c(3, 5), labels = c("text", "text"), col = c("red", "blue"),cex = c( 0.8 , 1 )) # 在兩個位置添加(3,3)和(4,5)

         text(x = 4, y = 2, labels =expression(hat(beta) == (X^t * X)^{-1} * X^t * y), srt = 45, adj = c(0.5, 0.5),  cex = .8)

                   # 想打印數學表達式或者一些特殊符號,使用expression 函數.參考 plotmath 函數的幫助文檔

                   # srt文字與x軸正向的夾角。adj取值0-1,是對labels內容整體位置的微調,在中心位置的哪個方向。

                   # pos+offset: 也是對文字的位置進行調整,可選值為1,2,3, 4分別對應下,上,左,右,不能和adj參數同時使用,

         mtext("text", side=4, line=0.4, las=1,  col="red", cex=1.2, at=1:3, adj="") #為四個坐標軸添加標簽文字。

                   #在邊空添加text指定的文字,side:1=bottom, 2=left, 3=top, 4=right;line:添加的文字距離繪圖區域的距離,las 文字方向,..

                  

         lines(trucks, type="o", pch=22, col="red", lty=2, lwd=2) #添加折線,pch控制點的符號,lty=2表示虛線,

                   #lty控制連線的線型,可以是整數(1: 實線,2: 虛線,3: 點線,4: 點虛線,5: 長虛線,6: 雙虛線),

         abline(a=2, b=1, type="l", pch=2, col="red", lty=2, lwd=2) #繪制斜率為1和截距為2的直線

                   # abline(h = 3.5,v = 3) 畫y=3.5直線和x=3直線。

         box(bty="L")  # 添加外部邊框

                   # bty控制圖形邊框形狀,可用的值為: "o", "l", "7", "c", "u" 和"]" (邊框和字符 的外表相像);

         arrows(1, 2, 2, 4, code=2, angle= 30, lengths=0.1, lty=1, lwd=2, col="red") #添加箭頭,

                   # 如果code=1,2,3在一端還是兩端畫箭頭; angle控制箭頭軸到箭頭邊的角度,lengths箭頭的大小

         rect(1,5,2,7,col="red") 

                   # 在坐標為(1,5)到(2,7)為對角線畫長方形。

另請參閱:

作圖其他相關函數(具體參數使用查看幫助文檔):
abline( ): 在原有的圖上加直線。
points( ): 在原有的圖上加點。
lines(): 在原有的圖上加線。
arrows(): 在原有的圖上加帶箭頭的線。
text(): 在原來的圖上某坐標位置上加文本標簽。
title(): 給原有的圖形添加標題。
legend(): 在原有的圖形上加圖例。
frame() 與 plot.new(): 建立新的圖形窗口。
heat.colors( )/ rainbow( )/ gray.colors( ): 作圖顏色函數。

         legend(x, y = NULL, legend, fill = NULL, col = par("col"),

                             border = "black", lty, lwd, pch,

                             angle = 45, density = NULL, bty = "o", bg = par("bg"),

                             box.lwd = par("lwd"), box.lty = par("lty"), box.col = par("fg"),

                             pt.bg = NA, cex = 1, pt.cex = cex, pt.lwd = lwd,

                             xjust = 0, yjust = 1, x.intersp = 1, y.intersp = 1,

                             adj = c(0, 0.5), text.width = NULL, text.col = par("col"),

                             text.font = NULL, merge = do.lines && has.pch, trace = FALSE,

                             plot = TRUE, ncol = 1, horiz = FALSE, title = NULL,

                             inset = 0, xpd, title.col = text.col, title.adj = 0.5,

                             seg.len = 2)

         x, y    X,y用於定位圖例,也可用單鍵詞"bottomright", "bottom", "bottomleft", "left", "topleft", "top", "topright", "right" and "center"

         legend    字符或表達式向量

         col    圖例中出現的點或線的顏色

         lty, lwd    圖例中線的類型與寬度

         seg.len    lty 與lwd的線長,長度單位為字符寬度

         cex    字符大小

         x.intersp    圖例中文字離圖片的水平距離

         y.intersp    圖例中文字離圖片的垂直距離

         title     給圖例加標題

         title.col    標題顏色

         title.adj    圖例標題的相對位置,0.5為默認,在中間。0最左,1為最右。

         text.width    圖例字體所占的寬度

         text.col    圖例字體的顏色

         text.font    圖例字體

         horiz     默認堆疊放置圖例c()中的項目,if TRUE,則左右放置

         xjust   legend相對於x軸的對其方式 0:左對齊,0.5:居中對齊,1:右對齊。how the legend is to be justified relative to the legend x location.

         yjust         

         bg    bty != "n"時,整個圖例的背景色

         bty    圖例框是否畫出,o為畫出,默認為n不畫出

         box.lty, box.lwd, box.col    bty = "o"時,圖例框的類型,box.lty決定是否為虛線,box.lwd決定粗線,box.col決定顏色

         fill    用特定的顏色填充圖例里面 legend 前面的顏色

         border    當fill = 參數存在的情況下,填充色的邊框

 

         xpd    xpd=FALSE,即不允許在作圖區域外作圖,改為TRUE即可,與par()參數配合使用。

         trace    logical; if TRUE顯示圖例信息.

         plot    logical. If FALSE不畫出圖例

         adj    圖例中字體的相對位置

         pch    點的類型

         angle    陰影的角度

         density    陰影線的密度

         pt.bg    點的背景色

         pt.cex    點的大小

         pt.lwd    點的邊緣的線寬

         merge    logical, if TRUE,合並點與線,但不填充圖例框,默認為TRUE

         ncol    圖例中分類的列數

         inset    當圖例用關鍵詞設置位置后,inset = 分數,可以設置其相對位置

        

         


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM