数据分析基础|R语言(图形初阶)

简介: 数据分析R语言绘图操作。

条形图

条形图用矩形条来表示数据,条的长度与变量的值成比例,在R语言中可以使用函数barplot()来创建条形图,可以在条形图中绘制垂直和水平条,并且每个条形都可以设置成不同的颜色。

R语言中创建条形图的基本语法是:

barplot(H,xlab,ylab,main,names.arg,col)

image.gif

barplot中的参数描述如下:

    • H表示我们用到的数据,可以是一个向量或者是一个矩阵(数值型)。
    • xlab,ylab分别表示x,y轴的标签。
    • main表示的是条形图的标题。
    • names.arg表示的是每个条下的名称的向量。
    • col用来提供每个条需要的颜色。

    barplot示例如下(legend函数用来生成图例):

    >colors<-c("blue","pink","yellow")
    >country<-c("china","japan","USA","UK","korea")
    >country<-c("China","Japan","USA","UK","Korea")
    >regions<-c("East","West","North")
    >value<-matrix(c(2,3,4,7,3,12,9,9,6,5,10,5,8,7,9),nrow=3,ncol=5,byrow=TRUE)
    >barplot(value,xlab="country",ylab="regions",names.arg=country,col=colors)
    >legend("topright",regions,cex=1,fill=colors)

    image.gif

    结果如下:

    image.png

    箱线图

    箱形图(Box-plot)又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图,箱线图是数据集中的数据分布良好的度量,它将数据集分成三个四分位数。 此图表表示数据集中的最小值,最大值,中值,第一四分位数和第三四分位数。 它还可用于通过绘制每个数据集的箱线图来比较数据集之间的数据分布。

    R语言中创建箱线图的基本语法是:

    boxplot(formula, x, data, notch, varwidth, widthrangenames, maincol)

    image.gif

    boxplot中的参数描述如下:

      • formula是一种类似于y~grp的公式,其中y是要画的变量,grp是要描述分组的变量。
      • x是向量,设置用于画图的值。
      • data是一个数据框或者列表,其中定义了formula所使用的的变量。
      • notch是一个bool类型的逻辑值,若为TRUE则会在箱子上绘制一个缺口。
      • varwidth也是一个逻辑值,若为TRUE则会按照比例去取绘制箱子的宽度,若为FALSE则所有的箱子是同样的宽度。
      • width是定义箱子宽度的一个数值。
      • range用于定义从箱子延伸出来的胡须的最大长度。
      • names将要打印的每一个箱线图的标签。
      • main箱线图的标题。
      • col箱线图的背景色。

      boxplot()函数的示例如下(以R语言中自带的mtcars数据集为例):

      boxplot(mpg~cyl, data=mtcars,
      xlab="Number of Cylinders", ylab="Miles Per Gallon", 
      main="Mileage Data",notch=TRUE, 
      varweight=TRUE, col=c("pink","green","red"), 
      names=c("High","Medium","Low"))

      image.gif

      结果如下:

      image.png

      直方图

      直方图是一种很常见的图形,其形状看似类似于第一节中讲到的条形图,其本质区别在于直方图讲数据值分组为连续的范围,直方图中的每个柱的高度表示取值范围内的数值的个数。

      R语言中创建直方图的基本语法是:

      hist(v,main,xlab,xlim,ylim,breaks,col,border)

      image.gif

      hist中的参数描述如下:

        • v是我们要使用的向量(数值型)
        • main表示图表的标题。
        • xlab给出x轴的描述。
        • xlim,ylim用于给出x,y轴上的数值范围。
        • breaks用于表示每个条的宽度。
        • col表示颜色。
        • border用于设置每个矩形的边框颜色。

        hist()函数的使用方法如下:

        hist(v,xlab="count",xlim=c(0,30),ylim=c(0,5),breaks=5,col=c("blue","pink","brown","green","red"),border="black")

        image.gif

        结果如下:

        image.png

        折线图

        折线图是通过一些线段去把很多散点连接起来的图形,通常用于表示某个数据发展的趋势。

        在R语言中创建折线图的基本语法是:

        plot(v,type,col,xlab,ylabpchcex, lty, lwd)

        image.gif

        plot中的参数描述如下:

          • v依旧是我们要是用的向量(数值型)
          • type采用值"p"仅绘制点,"l"仅绘制线,"o"绘制点和线。
          • pch用于制定绘制点时使用的符号
          • cex用于表示符号的大小,默认为1,其他数字按比例缩放。
          • lty用于制定线条的类型
          • lwd用于制定线条的宽度,默认值为1。

          绘制折线图的plot()函数的如下:

          >v<-c(4,7,13,5,16)
          >plot(v,xlab="year", ylab="num", type="o", col="blue", pch=18, lty=4)

          image.gif

          结果如下:

          image.png

          上述代码中我们只画了一条折现,R语言中提供了lines()函数可以在同一张表上绘制多条直线。

          在上述代码后继续添加如下代码:

          >t=c(4,5,11,8,14)
          >lines(t, type="o", col="green")

          image.gif

          得到结果:

          image.png

          散点图

          散点图实在一个平面上绘制坐标点得到的图形,绘制该图形时我们要得到数据中每个点对应的坐标。

          在R语言中绘制散点图的基本语法是:

          plot(x, y, main, xlab, ylab, xlim, ylim, axes)

          image.gif

          我们可以看到绘制散点图的函数和绘制折线图的函数名称是一样的,这是因为折线图是基于多个点而建成的,所以可以说绘制直线图需要建立在散点图之上。

          plot的参数补充如下:

            • xlim是用于绘图的x的值的极限。
            • ylim是用于绘图的y的值的极限。
            • axes指示是否应在绘图上绘制两个轴。

            plot绘制散点图的示例如下(这里我们采用R语言再带的mtcars数据集):

            >input<-mtcars[,c("wt","mpg")]
            >plot(x=input$wt,y=input$mpg,
            +xlab="Weight",
            +ylab="Milage",
            +xlim=c(2.5,5),
            +ylim=c(15,30),    
            +main="Weight vs Milage"+ )

            image.gif

            结果如下:

            image.png

            散点图矩阵

            有两个以上的变量的时候,我们想找到一个变量和其余变量之间的相关性,此时使用散点图矩阵。

            R语言中创建散点图矩阵的语法如下:

            pairs(formula, data)

            image.gif

            pairs()函数的参数描述如下:

              • formula表示成对使用的一系列变量。
              • data表示将从其获取变量的数据集

              pairs绘制散点图矩阵的示例如下:

              pairs(~wt+mpg+disp+cyl,data=mtcars,
              main="Scatterplot Matrix")

              image.gif

              结果如下:

              image.png

              饼状图

              饼图是将值表示为具有不同颜色的圆的切片,能够更直观的展示数据的分布情况。

              R语言中创建饼状图的语法如下:

              pie(x, labels, radius, main, col, clockwise)

              image.gif

              pie()函数参数的描述如下:

                • x是包含饼图中使用的数值的向量。
                • labels用于给出切片的描述。
                • radius表示饼图圆的半径(值-1和+1之间)。
                • main表示图表的标题。
                • col表示调色板。
                • clockwise是指示片段是顺时针还是逆时针绘制的逻辑值。

                pie绘制饼状图的示例如下:

                >x<-c(33,44,12,20)
                >labels<-c("beijing", "shanghai", "guangzhou", "shenzhen")
                >pie(x, labels=labels, main="Pie City", col=rainbow(length(x)))

                image.gif

                结果如下:

                image.png

                3D饼状图

                为了更好的展示数据分布的情况,R语言在饼图的基础上也提供了3D饼图的绘制方法。绘制3D饼图,我们需要加载plotrix工具包中的pie3D()函数。

                pie3D()函数的示例如下:

                >install.packages("plotrix")
                >library(plotrix)
                >x<-c(22,42,12,30)
                >labels<-c("beijing","shanghai","guangzhou","shenzhen")
                >pie3D(x,labels=labels,main="pie3D example", explode=0.1)

                image.gif

                结果如下:

                image.png

                以上就是对R语言中几种基础的图形的介绍,高阶图形会在后面的文章中单独讲解。

                相关文章
                |
                3月前
                |
                数据可视化 数据挖掘 图形学
                R语言基础可视化:使用ggplot2构建精美图形的探索
                【8月更文挑战第29天】 `ggplot2`是R语言中一个非常强大的图形构建工具,它基于图形语法提供了一种灵活且直观的方式来创建各种统计图形。通过掌握`ggplot2`的基本用法和美化技巧,你可以轻松地将复杂的数据转化为直观易懂的图形,从而更好地理解和展示你的数据分析结果。希望本文能够为你探索`ggplot2`的世界提供一些帮助和启发。
                |
                3月前
                |
                数据可视化
                R语言自定义图形:ggplot2中的主题与标签设置
                【8月更文挑战第30天】`ggplot2`作为R语言中功能强大的绘图包,其自定义能力让数据可视化变得更加灵活和多样。通过合理使用`theme()`函数和`labs()`函数,以及`geom_text()`和`geom_label()`等几何对象,我们可以轻松创建出既美观又富有表达力的图形。希望本文的介绍能够帮助你更好地掌握`ggplot2`中的主题与标签设置技巧。
                |
                3月前
                |
                数据可视化
                R语言多图合成:优雅地在一个画布上展示多个图形
                【8月更文挑战第30天】R语言提供了多种方法来实现多图合成,从基础的`par()`函数到高级的`gridExtra`、`ggplot2`和`cowplot`包,每种方法都有其独特的优势和应用场景。通过掌握这些技术,你可以根据实际需求灵活地组合图形,从而更高效地展示和解读数据。希望本文能为你提供一些有益的参考和启示。
                |
                21天前
                |
                机器学习/深度学习 并行计算 数据挖掘
                R语言是一种强大的统计分析工具,广泛应用于数据分析和机器学习领域
                【10月更文挑战第21天】R语言是一种强大的统计分析工具,广泛应用于数据分析和机器学习领域。本文将介绍R语言中的一些高级编程技巧,包括函数式编程、向量化运算、字符串处理、循环和条件语句、异常处理和性能优化等方面,以帮助读者更好地掌握R语言的编程技巧,提高数据分析的效率。
                38 2
                |
                21天前
                |
                数据采集 数据可视化 数据挖掘
                R语言与Python:比较两种数据分析工具
                R语言和Python是目前最流行的两种数据分析工具。本文将对这两种工具进行比较,包括它们的历史、特点、应用场景、社区支持、学习资源、性能等方面,以帮助读者更好地了解和选择适合自己的数据分析工具。
                24 2
                |
                6月前
                |
                监控 安全 数据可视化
                R语言在员工上网行为监控中的数据分析
                本文讲述了如何使用R语言分析员工上网行为以提升企业网络安全。通过收集网络流量和访问记录数据,利用R进行读取、分析和可视化,例如查看访问时长分布和热门网站。此外,文中还介绍了一个自动将监控数据提交到网站的R脚本,通过定时任务实现数据的持续更新和管理,及时发现并应对安全风险,增强网络安全性。
                303 3
                |
                2月前
                |
                数据采集 算法 搜索推荐
                R语言营销数据分析:使用R进行客户分群的实践探索
                【9月更文挑战第1天】R语言以其强大的数据处理和统计分析能力,在金融数据分析、营销数据分析等多个领域发挥着重要作用。通过R语言进行客户分群,企业可以更好地理解客户需求,制定精准的营销策略,提升市场竞争力和客户满意度。未来,随着大数据和人工智能技术的不断发展,R语言在营销数据分析中的应用将更加广泛和深入。
                |
                6月前
                |
                数据可视化 前端开发 数据挖掘
                R语言对综合社会调查GSS数据进行自举法bootstrap统计推断、假设检验、探索性数据分析可视化|数据分享(上)
                R语言对综合社会调查GSS数据进行自举法bootstrap统计推断、假设检验、探索性数据分析可视化|数据分享
                |
                3月前
                |
                机器学习/深度学习 数据可视化 数据挖掘
                为啥我敢说Python是数据分析界的扛把子语言?
                为啥我敢说Python是数据分析界的扛把子语言?
                |
                6月前
                |
                机器学习/深度学习 数据挖掘 计算机视觉
                R语言中的神经网络预测时间序列:多层感知器(MLP)和极限学习机(ELM)数据分析报告
                R语言中的神经网络预测时间序列:多层感知器(MLP)和极限学习机(ELM)数据分析报告