杭州电子商务研究院

使用 ggplot2 进行数据可视化

2020-10-27 08:00飞浪

介绍

R 是一个出色的数据可视化开源平台。它能够创建任何类型的图表。但在创建任何类型的图表之前,您应该先了解要显示的内容,然后从中选择图表。假设您有一个数据集,显示公司在一段时间内的股票价值波动,那么我们希望使用一个图表来显示价值随时间变化的比较。根据数据集和表示数据的思路,图表可以分为四种类型:

  1. 比较图表
  2. 分布图
  3. 成分图
  4. 关系图

比较图表

这些类型的图表会比较不同类别或不同时间范围内的数据。对于不同类别之间的比较,您可以使用条形图或柱形图。对于需要随时间进行比较的数据点,您可以使用折线图或圆形面积图。

分布图

这些类型的图表将显示一个或多个变量的数据分布。对于一个变量的分布,您可以使用直方图或密度图。两个变量的分布可以用散点图绘制。

成分图

这些类型的图表显示随时间变化的成分或静态成分。要显示随时间变化的成分,您可以使用堆积柱形图或堆积面积图。静态成分可以通过饼图或瀑布图显示。

关系图

这些类型的图表用于显示两个或多个变量之间的关系。要显示两个变量之间的关系,可以使用散点图。如果要显示三个变量之间的关系,可以使用气泡图。

使用 ggplot2 绘制图表

在本节中,您将使用 R 中的 ggplot2 绘制不同类型的图表。以下是使用 ggplot2 的先决条件。您可以在此处获取有关此软件包的更多信息。

      # Install ggplot2 in Rstudio
install.packages("ggplot2")

# Loading ggplot2
library(ggplot2)
    

创建比较图表

      # Creating a dataframe 
df <- data.frame(trt = c("a", "b", "c"), outcome = c(2.3, 1.9, 3.2))

# Plotting a bar plot
ggplot(df, aes(trt, outcome)) +
geom_bar(stat = "identity")
    
      # Creating dataframe for line plot
x <- seq(0.01, .99, length.out = 100)
df <- data.frame(
  x = rep(x, 2),
  y = c(qlogis(x), 2 * qlogis(x)),
  group = rep(c("a","b"),
  each = 100)
)

# Creating aline plot
ggplot(df, aes(x=x, y=y, group=group))+
geom_line()
    

创建分布图

      # Using diamonds dataset fro creating a density plot
ggplot(diamonds, aes(carat)) +
  geom_density()
    

在密度图中,没有定义箱体。当有大量数据点时,使用这种图。当数据点较少时,可以使用直方图。

      # geom_point() is used to plot a scatter plot
ggplot(mtcars, aes(wt, mpg))+ 
geom_point()
    

散点图用于一次显示两个变量的分布。

创建成分图表

没有可用于创建饼图的 geom 函数。但是,可以使用coord_polar()函数将条形图转换为饼图。

      # Creating a dataframe 
df <- data.frame(trt = c("a", "b", "c"), outcome = c(2.3, 1.9, 3.2))
# Plotting a pie plot
ggplot(df, aes(x ="", y = outcome, fill = trt)) +
geom_bar(width = 1,stat = "identity")+
coord_polar("y", start = 0)
    

创建关系图

气泡图是散点图的扩展。在散点图中,您可以显示两个变量之间的关系。在气泡图中,您可以一次显示三个变量之间的关系。

      # Creating a Bubble chart
ggplot(mtcars, aes(x=wt, y=mpg)) + 
  geom_point(aes(size=qsec)
    

结论

有大量图表可用,每个图表都具有特定的质量,用于显示数据中隐藏的某些因素。您不需要学习每张图表,但如果您想进行数据分析,其中一些图表非常重要。数据可视化是一个很大的话题,有许多为可视化目的而开发的软件包。如果您想更详细地了解,请访问此处。

曝光33601浏览1789