R語言實戰-讀書筆記 (第3章 圖形初階)

***********************************

與導圖結合的腳本文件:
創建腳本:文件——新建腳本程序,將以下代碼複製粘貼至腳本內,選中右鍵運行當前或所選代碼。

#第三章 圖形初階#
attach(mtcars)
plot(wt, mpg)
abline(lm(mpg~wt))
title("Regression of MPG on Weight")
detach(mtcars)
dev.off()

#避免圖形覆蓋方法1 新建圖形之前打開一個新的窗口#
dev.new()

##
dose <- c(20, 30, 40, 45, 60)
drugA <- c(16, 20, 27, 40, 60)
drugB <- c(15, 18, 25, 31, 40)
plot(dose, drugA, type="b")
#不加參數地執行par()將生成一個含有當前圖形參數設置的列表。添加參數no.readonly=TRUE可以生成一個可以修改的當前圖形參數列表。#
opar <- par(no.readonly=TRUE)
##假設你想使用實心三角而不是空心圓圈作爲點的符號,並且想用虛線代替實線連接這些點##
dev.new()
par(lty=3, pch=12)
plot(dose, drugB, type="b")
par(opar)
plot(dose, drugA, type="b", lty=2, pch=17)
plot(dose, drugA, type="b", lty=3, lwd=3, pch=15, cex=2)
#使用圖形參數控制圖形外觀#
opar <- par(no.readonly=TRUE)
par(pin=c(2, 3))
par(lwd=2, cex=1.5)
par(cex.axis=.75, font.axis=3)
plot(dose, drugA, type="b", pch=19, lty=2, col="red")
plot(dose, drugB, type="b", pch=23, lty=6, col="blue", bg="green")
par(opar)

#添加文本、自定義座標軸和圖例#
plot(dose, drugA, type="b",col="red",
lty=2, pch=2, lwd=2,
main="Clinical Trials for Drug A",
sub="This is hypothetical data",
xlab="Dosage", ylab="Drug Response",
xlim=c(0, 60), ylim=c(0, 70))

#自定義座標軸示例#
x <- c(1:10)
y <- x
z <- 10/x
opar <- par(no.readonly=TRUE)
par(mar=c(5, 4, 4, 8) + 0.1)
plot(x, y, type="b",pch=21, col="red",yaxt="n", lty=3, ann=FALSE)
lines(x, z, type="b", pch=22, col="blue", lty=2)
axis(2, at=x, labels=x, col.axis="red", las=2)
axis(4, at=z, labels=round(z, digits=2),col.axis="blue", las=2, cex.axis=0.7, tck=-.01)
mtext("y=1/x", side=4, line=3, cex.lab=1, las=2, col="blue")
title("An Example of Creative Axes",xlab="X values",ylab="Y=X")
par(opar)

#添加次要刻度線 minor.tick(nx=n, ny=n, tick.ratio=n)#
library(Hmisc)
minor.tick(nx=2, ny=3, tick.ratio=0.5)

#參考線#
abline(h=c(1,5,7))
#在x爲1、3、5、7、9的位置添加了垂直的藍色虛線#
abline(v=seq(1, 10, 2), lty=2, col="blue")
#完整示例#
dose <- c(20, 30, 40, 45, 60)
drugA <- c(16, 20, 27, 40, 60)
drugB <- c(15, 18, 25, 31, 40)
opar <- par(no.readonly=TRUE)
par(lwd=2, cex=1.5, font.lab=2)
plot(dose, drugA, type="b",
pch=15, lty=1, col="red", ylim=c(0, 60),
main="Drug A vs. Drug B",
xlab="Drug Dosage", ylab="Drug Response")
lines(dose, drugB, type="b",pch=17, lty=2, col="blue")
abline(h=c(30), lwd=1.5, lty=2, col="gray")
library(Hmisc)
minor.tick(nx=3, ny=3, tick.ratio=0.5)
legend("topleft", inset=.05, title="Drug Type", c("A","B"),
lty=c(1, 2), pch=c(15, 17), col=c("red", "blue"))
par(opar)

#添加文本#
attach(mtcars)
head(mtcars)
plot(wt, mpg,
main="Mileage vs. Car Weight",
xlab="Weight", ylab="Mileage",
pch=18, col="blue")
text(wt, mpg,row.names(mtcars),
cex=0.6, pos=4, col="red")
detach(mtcars)

#圖形的組合#
#par(mfrow=c(nrows, ncols)) #
attach(mtcars)
opar <- par(no.readonly=TRUE)
par(mfrow=c(2,2))
plot(wt,mpg, main="Scatterplot of wt vs. mpg")
plot(wt,disp, main="Scatterplot of wt vs. disp")
hist(wt, main="Histogram of wt")
boxplot(wt, main="Boxplot of wt")
par(opar)
detach(mtcars)
#layout()#
attach(mtcars)
layout(matrix(c(1, 1, 2, 3), 2, 2, byrow = TRUE),
widths=c(3, 1), heights=c(1, 2))#第1行中圖形的高度是第2行中圖形高度的二分之一。#
#右下角圖形的寬度是左下角圖形寬度的三分之一#
matrix(c(1, 1, 2, 3), 2, 2, byrow = TRUE)#查看矩陣,發現一幅圖被置於第1行,另兩幅圖則被置於第2行#
hist(wt)
hist(mpg)
hist(disp)
detach(mtcars)
#fig()#
opar <- par(no.readonly=TRUE)
par(fig=c(0, 0.8, 0, 0.8))
plot(mtcars$wt, mtcars$mpg,
xlab="Miles Per Gallon",
ylab="Car Weight")
par(fig=c(0, 0.8, 0.55, 1), new=TRUE)
boxplot(mtcars$wt, horizontal=TRUE, axes=FALSE)
par(fig=c(0.65, 1, 0, 0.8), new=TRUE)
boxplot(mtcars$mpg, axes=FALSE)
mtext("Enhanced Scatterplot", side=3, outer=TRUE, line=-3)
par(opar)

********************

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章