###5.绘图工具#### #5.1 基本绘图函数plot()#### View(cars) help(cars) #行驶速度与刹车距离 head(cars) plot(cars) plot(cars$dist~cars$speed) #指定y轴表示刹车距离 plot(cars$speed~cars$dist) #指定x轴表示刹车距离 #5.2 为了方便将两幅图画在一起进行对比 #### windows() #用单独的窗口显示图形以获得更好的显示效果,注意windows命令在前 par(mfrow=c(2,2)) #c(2,2)表示生成一个2*2的矩阵 plot(cars$dist~cars$speed) plot(cars$speed~cars$dist) #5.3 函数的参数####(注意代码的美观) plot(cars$dist~cars$speed, # y~x main="刹车距离与车速之间的关系", # 画标题 xlab="Speed (miles per hour)", #X坐标轴标题 ylab="Distance travelled (miles)", #Y坐标轴标题 xlim=c(0,30), #设置X轴范围为从0到30 ylim=c(0,140), #设置Y轴范围为从0到140 xaxs="i", #设置X轴风格internal yaxs="i", #设置Y轴风格internal col="red", #设置“散点”的颜色为红色 pch=19) #设置散点的形状为实心圆点 #5.4绘制线图#### #使用微信公众号用户数据 setwd("~") num<-read.csv(file = "wechat.csv") head(num) windows() plot(num$NetGrowth~as.Date(num$date), type="l", mian="每日净增长变化", xlab="日期", ylab ="净增长人数",col="red" ) #5.5 低水平绘图函数lines()#### lines(num$NetGrowth~as.Date(num$date),col="red") example("lines") plot(cars, main = "Stopping Distance versus Speed") lines(stats::lowess(cars)) #此段代码为散点图加上光滑的曲线 #5.6 柱形图#### #使用数据集BOD View(BOD) #使用基础绘图包 barplot(BOD$demand,names.arg = BOD$Time) #先输出频数表,然后在用条形图绘制 table(mtcars$cyl) barplot(table(mtcars$cyl)) #改变图形的方向 windows() par(mfrow=c(1,2)) barplot(BOD$demand,names.arg = BOD$Time) barplot(BOD$demand,names.arg = BOD$Time,horiz = TRUE) ###5.7.绘制直方图#### windows() par(mfrow=c(1,2)) hist(mtcars$mpg) hist(mtcars$mpg,breaks=10) #控制分区数目 ###5.8绘制箱线图#### #使用数据集ToothGrowth View(ToothGrowth) #使用plot函数时,当x轴为分类变量,y轴为数值型变量时,默认输出箱线图 plot(ToothGrowth$supp,ToothGrowth$len) ###5.9 绘图设备(输出图形的格式)#### ?device #查看可以使用的图形设备 setwd("~") pdf("boxplot.pdf") #在图形设备中输出图形名称 plot(ToothGrowth$supp,ToothGrowth$len) dev.off() #关闭当前图形设备,相当于保存该图形 png("boxplot.png") plot(ToothGrowth$supp,ToothGrowth$len) dev.off() pdf("综合图.pdf") #在你希望将所有图形输出到一个文件中时,这样做,不支持PNG格式 hist(mtcars$mpg) hist(mtcars$mpg,breaks=10) plot(ToothGrowth$supp,ToothGrowth$len) dev.off() #图形设备设置 dev.cur() #查看当前正在使用的图形设备 dev.set(3) #把当前正在使用的图形设别设置为其它设备 #5.10 其他常用图形#### example("pie") #查看饼图的使用方法和示例 example("plot.ts")#时间序列图示例 #5.11 绘图参数#### setwd("~") wec<-read.csv(file = "wechat.csv",header = TRUE) head(wec) windows() plot.ts(wec$NetGrowth,col="red") points(wec$NetGrowth,bg="skyblue",color="red",pch=21) abline(h=mean(wec$NetGrowth),col="blue") title("公众号日净增关注人数变化") box() #5.12 生成时间序列的函数#### ts(1:10, frequency = 4, start = c(1958, 1)) #生成时间序列,季度,起始 print( ts(1:10, frequency = 7, start = c(12, 2)), calendar = TRUE) #星期 日历 gnp <- ts(cumsum(1 + round(rnorm(100), 2)), start = c(1954, 7), frequency = 12) z <- ts(matrix(rnorm(300), 100, 3), start = c(1961, 1), frequency = 12) class(z);head(z);plot(z)