看书标记【数据科学:R语言实战 8】

看书标记------R语言

  • [Chapter 8 数据可视化------绘图](#Chapter 8 数据可视化——绘图)
      • [8.1 功能包](#8.1 功能包)
      • [8.2 散点图](#8.2 散点图)
      • [8.3 直方图和条形图](#8.3 直方图和条形图)
        • [8.3.1 条形图](#8.3.1 条形图)
        • [8.3.2 直方图 8.3.3 ggplot2](#8.3.2 直方图 8.3.3 ggplot2)
        • [8.3.4 词云](#8.3.4 词云)

【数据科学:R语言实战】

Chapter 8 数据可视化------绘图

8.1 功能包

  • car(Companion to Applied Regression):回归工具
  • lattice:实现高级数据可视化
  • gclus:创建散点图
  • MASS
  • ggplot2

8.2 散点图

plot()

  • 参数
    x 自变量
    y 因变量
    type p点、l线、b两者、c指b的直线部分、o两者图形叠加部分、h柱状图垂线、s楼梯阶层、S其他阶层、n无绘图
    main 标题
    sub 副标题
    xlab x轴标记
    ylab y轴标记
    asp 纵横比
r 复制代码
data <- read.csv("http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data")  ##iris数据集
colnames(data) <- c("sepal_length", "sepal_width", "petal_length", "petal_width", "species")
summary(data)
plot(data$sepal_length, data$petal_length) ##常规
plot(data$sepal_length, data$petal_length, type="s")  ##s步骤和h柱状图
plot(data$sepal_length, data$petal_length, type="h")
8.2.1 回归线

abline()

  • 参数
    a 截距
    b 斜率
    h 画水平线
    v 画垂直线
    coef 仅包含截距和斜率
    reg coef的对象
r 复制代码
abline(lm(data$petal_length~data$sepal_length), col="red")
8.2.2 lowess线条

lowess线条是用加权多项式回归进行计算的平滑线。

lowess()

  • 参数
    x 待用点向量
    y y轴,默认"NULL"
    f 较平滑跨度越大越平滑,默认2/3
    iter 迭代次数,默认为3,迭代次数越多时间越长
    delta 界定计算数值的密切度,默认值为x范围的1/100
r 复制代码
lines(lowess(data$sepal_length,data$petal_length), col="blue")
8.2.3 scatterplot函数

scatterplot()

  • 参数
    x、y 坐标向量
    formula y~x 或者 y~x|z(按z分组绘图)
    las "0"创建与坐标轴平行的刻点标记,"1"创建水平标记
    lwd 线宽,默认1
    lty 线类型,默认1
    id.method/id.n/id.cex/id.col 标记点参数
    labels 点标记的向量
    log 是否使用点的标记比例尺
    xlim、ylim 轴限度
r 复制代码
library(car)
scatterplot(data$sepal_length, data$petal_length)  ##有内置箱线图、简单回归线、平滑线、平滑抖动范围
8.2.4 Scatterplot矩阵
r 复制代码
pairs(data)  ##矩阵数据
1.splom------展示矩阵数据

library(lattice);splom(data)

or

library(car);scatterplot.matrix(data) ##含有的数据信息更多


2.cpairs------绘图矩阵图
r 复制代码
library(gclus)
cpairs(data)  ##cpairs对矩阵数据起辅助作用
df <- subset(data, select = -c(species) )  ##cor函数只以数据点形式运行
df.r <- abs(cor(df))  ##计算相关性
df.col <- dmat.color(df.r)  ##依相关性为每个子图指定颜色,不适用于多类别颜色
df.o <- order.single(df.r) 
cpairs(df, df.o, panel.colors=NULL)
8.2.5 密度散点图

hexbin()提供了一项能够展示两个变量中高度重复的机制

r 复制代码
library(hexbin)
bin<-hexbin(data$sepal_length, data$petal_length) 
summary(bin)  ##默认30箱,生成36*31网格的六边形,最低网格1,最高网格1114,传播状况良好,网格计数均值1.38,表明重复度不足
#plot(bin)
bin<-hexbin(data$sepal_length, data$petal_length, xbins=10)   ##改用10个箱子后,密度数量有变好
summary(bin)
plot(bin)

8.3 直方图和条形图

8.3.1 条形图

barplot()

  • 参数
    height 主要的数据向量
    width 条宽向量
    space 每条左侧的空间大小
    **names.arg ** 名称向量
    legend.text 绘制图标
r 复制代码
library(MASS)
HairEyeColor
summary(HairEyeColor)
counts <- table(HairEyeColor)
barplot(counts)  ##堆叠图
count <- table(Cars93$Cylinders)
barplot(count)
count <- table(Cars93$Cylinders, Cars93$Manufacturer)
barplot(count)
8.3.2 直方图 8.3.3 ggplot2

count <- table(Cars93 C y l i n d e r s , C a r s 93 Cylinders, Cars93 Cylinders,Cars93Manufacturer)

barplot(count)

library(ggplot2)

qplot(Cars93$Cylinders)


8.3.4 词云
r 复制代码
page <- readLines("http://finance.yahoo.com") ##读取文本
corpus = Corpus(VectorSource(page))  ##语料库
corpus <- tm_map(corpus, tolower) ##小写
corpus <- tm_map(corpus, removePunctuation)
corpus <- tm_map(corpus, removeNumbers)
corpus <- tm_map(corpus, removeWords, stopwords("english"))
corpus <- tm_map(corpus, PlainTextDocument)  ##将语料库重新配置为文本文档
dtm = TermDocumentMatrix(corpus)
m = as.matrix(dtm)  ##转换为文本矩阵
v = sort(rowSums(m), decreasing = TRUE)
wordcloud(names(v), v, min.freq = 10)
相关推荐
Theodore_10222 小时前
4 设计模式原则之接口隔离原则
java·开发语言·设计模式·java-ee·接口隔离原则·javaee
----云烟----4 小时前
QT中QString类的各种使用
开发语言·qt
lsx2024064 小时前
SQL SELECT 语句:基础与进阶应用
开发语言
开心工作室_kaic4 小时前
ssm161基于web的资源共享平台的共享与开发+jsp(论文+源码)_kaic
java·开发语言·前端
向宇it4 小时前
【unity小技巧】unity 什么是反射?反射的作用?反射的使用场景?反射的缺点?常用的反射操作?反射常见示例
开发语言·游戏·unity·c#·游戏引擎
武子康4 小时前
Java-06 深入浅出 MyBatis - 一对一模型 SqlMapConfig 与 Mapper 详细讲解测试
java·开发语言·数据仓库·sql·mybatis·springboot·springcloud
转世成为计算机大神5 小时前
易考八股文之Java中的设计模式?
java·开发语言·设计模式
宅小海5 小时前
scala String
大数据·开发语言·scala
qq_327342735 小时前
Java实现离线身份证号码OCR识别
java·开发语言
锅包肉的九珍5 小时前
Scala的Array数组
开发语言·后端·scala