R语言 用R和ggplot2实现数据可视化

R语言 用R和ggplot2实现数据可视化

R编程语言中的ggplot2包 也被称为 图形语法 ,是一个免费的、开源的、易于使用的可视化包,在R中广泛使用。它是由Hadley Wickham编写的最强大的可视化包。

它包括几个层次,它是由这些层次来管理的。这些层次如下。

具有图形语法的层的构件

  • 数据: 该元素是数据集本身
  • 美学 :数据要映射到美学属性上,如X轴、Y轴、颜色、填充、大小、标签、阿尔法、形状、线宽、线型。
  • 几何学: 我们的数据如何使用点、线、柱状图、条形图、boxplot进行显示。
  • 面: 使用列和行来显示数据的子集。
  • 统计学: 分选、平滑、描述性、中间性
  • 坐标: 使用直角坐标、固定坐标、极坐标、极限坐标显示数据和显示之间的空间
  • 主题: 非数据链接

用R和ggplot2实现数据可视化

使用的数据集

mtcars(motor trend car road test)包括32种汽车的油耗和汽车设计和性能的10个方面,并预先安装了R中的 dplyr 包。

# Installing the package
install.packages("dplyr")
  
# Loading package
library(dplyr)
  
# Summary of dataset in package
summary(mtcars)

输出

      mpg             cyl             disp             hp       
 Min.   :10.40   Min.   :4.000   Min.   : 71.1   Min.   : 52.0  
 1st Qu.:15.43   1st Qu.:4.000   1st Qu.:120.8   1st Qu.: 96.5  
 Median :19.20   Median :6.000   Median :196.3   Median :123.0  
 Mean   :20.09   Mean   :6.188   Mean   :230.7   Mean   :146.7  
 3rd Qu.:22.80   3rd Qu.:8.000   3rd Qu.:326.0   3rd Qu.:180.0  
 Max.   :33.90   Max.   :8.000   Max.   :472.0   Max.   :335.0  
      drat             wt             qsec             vs        
 Min.   :2.760   Min.   :1.513   Min.   :14.50   Min.   :0.0000  
 1st Qu.:3.080   1st Qu.:2.581   1st Qu.:16.89   1st Qu.:0.0000  
 Median :3.695   Median :3.325   Median :17.71   Median :0.0000  
 Mean   :3.597   Mean   :3.217   Mean   :17.85   Mean   :0.4375  
 3rd Qu.:3.920   3rd Qu.:3.610   3rd Qu.:18.90   3rd Qu.:1.0000  
 Max.   :4.930   Max.   :5.424   Max.   :22.90   Max.   :1.0000  
       am              gear            carb      
 Min.   :0.0000   Min.   :3.000   Min.   :1.000  
 1st Qu.:0.0000   1st Qu.:3.000   1st Qu.:2.000  
 Median :0.0000   Median :4.000   Median :2.000  
 Mean   :0.4062   Mean   :3.688   Mean   :2.812  
 3rd Qu.:1.0000   3rd Qu.:4.000   3rd Qu.:4.000  
 Max.   :1.0000   Max.   :5.000   Max.   :8.000  

R编程中的ggplot2包的例子

我们使用 ggplot2 图层对包括32个汽车品牌和11个属性的 MTCars 数据集进行了可视化设计。

数据层

在数据层中,我们定义了要可视化的信息来源,让我们使用ggplot2包中的MTCars数据集。

# Loading packages
library(ggplot2)
library(dplyr)
   
# Data Layer
ggplot(data = mtcars)

输出

用R和ggplot2实现数据可视化

美学层

在这里,我们将把数据集显示并映射到某些美学上。

# Aesthetic Layer
ggplot(data = mtcars, aes(x = hp, y = mpg, col = disp))

输出

用R和ggplot2实现数据可视化

几何图层

在几何图层中控制基本元素,看看我们的数据是如何使用点、线、柱状图、条形图、boxplot显示的。

# Geometric layer
ggplot(data = mtcars, 
       aes(x = hp, y = mpg, col = disp)) + geom_point()

输出

用R和ggplot2实现数据可视化

几何图层。添加大小、颜色和形状,然后绘制直方图图谱

# Adding size
ggplot(data = mtcars, 
       aes(x = hp, y = mpg, size = disp)) + geom_point()
   
# Adding color and shape
ggplot(data = mtcars, 
       aes(x = hp, y = mpg, col = factor(cyl), 
                          shape = factor(am))) +
geom_point()
   
# Histogram plot
ggplot(data = mtcars, aes(x = hp)) +
       geom_histogram(binwidth = 5)

输出

用R和ggplot2实现数据可视化

Facet Layer

它用于将数据分割成整个数据集的子集,并允许子集在同一图上被可视化。在这里,我们根据传输类型分离行,根据圆柱体分离列。

# Facet Layer
p <- ggplot(data = mtcars, 
            aes(x = hp, y = mpg, 
                shape = factor(cyl))) + geom_point()
  
# Separate rows according to transmission type
p + facet_grid(am ~ .)
   
# Separate columns according to cylinders
p + facet_grid(. ~ cyl)

输出

用R和ggplot2实现数据可视化

统计层

在这一层中,我们使用分选、平滑、描述性、中间性等方法来转换我们的数据。

# Statistics layer
ggplot(data = mtcars, aes(x = hp, y = mpg)) + 
                               geom_point() + 
       stat_smooth(method = lm, col = "red")

输出

用R和ggplot2实现数据可视化

坐标层

在这些层中,数据坐标被一起映射到图形的所述平面上,我们调整轴和改变显示数据的间距与控制图的尺寸。

# Coordinates layer: Control plot dimensions
ggplot(data = mtcars, aes(x = wt, y = mpg)) +
                               geom_point() +
      stat_smooth(method = lm, col = "red") +
 scale_y_continuous("mpg", limits = c(2, 35), 
                          expand = c(0, 0)) +
  scale_x_continuous("wt", limits = c(0, 25),
            expand = c(0, 0)) + coord_equal()

输出

用R和ggplot2实现数据可视化

Coord_cartesian()来适当放大

# Add coord_cartesian() to proper zoom in
ggplot(data = mtcars, aes(x = wt, y = hp, col = am)) +
                        geom_point() + geom_smooth() +
                        coord_cartesian(xlim = c(3, 6))

输出

用R和ggplot2实现数据可视化

主题层

该层控制显示的细微之处,如字体大小和背景颜色属性。

例1: 主题层- element_rect() 函数

# Theme layer
ggplot(data = mtcars, aes(x = hp, y = mpg)) +
         geom_point() + facet_grid(. ~ cyl) +
        theme(plot.background = element_rect(
            fill = "black", colour = "gray"))

输出

用R和ggplot2实现数据可视化

例2 :

ggplot(data = mtcars, aes(x = hp, y = mpg)) +
        geom_point() + facet_grid(am ~ cyl) + 
        theme_gray()

输出

用R和ggplot2实现数据可视化

ggplot2 提供各种类型的可视化。更多的参数可以用在软件包中,因为该软件包对数据的可视化有更大的控制力。许多包可以与ggplot2包集成,使可视化的数据具有交互性和动画性。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程