在R、Python和Julia中常用的数据可视化技术

俗话说“一图胜千言” 。通过各种图片和图形化展示 , 我们可以更清晰地表达很多抽象概念、理论、数据模式或某些想法 。在本章中 , 我们首先解释为什么应该关心数据可视化 。然后 , 我们将讨论几种在R、Python和Julia中常用的数据可视化技术 。此外 , 我们还将介绍几个特殊主题 , 例如如何生成图形、饼图和条形图 , 如何添加标题、趋势线、希腊字母 , 以及如何输出图形 。在本章的最后 , 我们将讨论一个可选话题 , 即动态表示以及如何将它们保存为html文件 。
本章包含以下主题:

  • 数据可视化的重要性
  • R数据可视化
  • Python数据可视化
  • Julia数据可视化
4.1 数据可视化的重要性对于数据科学和商业分析领域的用户或研究人员来说 , 使用各种类型的图形、饼图、条形图以及其他视觉手段展示数据中隐含的潜在趋势或模式对理解数据至关重要 , 同时能够帮助研究人员更好地向观众或客户呈现数据 。这样做主要有以下几个原因 。
第一 , 语言有时很难描述我们的发现 , 尤其是存在几种模式或诸多影响因素时 , 通过几个单独的图形和一个连接图则可以更好地理解和解释复杂的关系 。
第二 , 我们可以使用图形或图片来解释某些算法 , 例如二分法(参见4.9节) 。
第三 , 我们也可以使用相对大小来表示不同的含义 。在金融领域 , 一个基本概念叫作货币时间价值(Time Value of Money , TVM) , 意思是“一鸟在手胜过双鸟在林” 。今天的100美元比同等数额的未来现金流更有价值 。通过不同尺寸的不同圆圈表示发生在未来不同时间点上的现金流的现值 , 可以帮助读者更清楚地理解这个概念 。
第四 , 我们的数据可能非常混乱 , 所以简单地展示数据点可能会使读者更加困惑 。如果我们能用一个简单的图形来展示它的主要特征、属性或模式将大有益处 。
4.2 R数据可视化首先 , 我们来看R中最简单的图形 。利用下面一行R代码 , 我们画出了从
在R、Python和Julia中常用的数据可视化技术

文章插图
 

在R、Python和Julia中常用的数据可视化技术

文章插图
 
范围内的余弦函数值:
> plot(cos,-2*pi,2*pi)对应的图形如图4.1所示 。
在R、Python和Julia中常用的数据可视化技术

文章插图
 
图4.1 余弦函数图
直方图也有助于我们理解数据点的分布 。图4.1就是一个简单的例子 。首先 , 我们生成一组服从标准正态分布的随机数 。为了便于说明 , 第一行的set.seed()命令其实是多余的 , 它的存在将保证所有使用相同seed值(本例中为333)的用户将得到相同的随机数集合 。
换句话说 , 在输入值相同的情况下 , 直方图看起来将是一样的 。在下一行中 , rnorm(n)函数画出了n个服从标准正态分布的随机数 。接着 , 最后一行使用hist()函数生成一个直方图:
> set.seed(333)> data<-rnorm(5000)> hist(data)相关直方图如图4.2所示 。
在R、Python和Julia中常用的数据可视化技术

文章插图
 
图4.2 示例直方图
注意 , 代码rnorm(5000)与rnorm(5000,mean=0,sd=1)相同 , 其中含义为均值的默认值为0 , sd的默认值为1 。下一个R程序将为标准正态分布左侧的尾巴填充阴影:
x<-seq(-3,3,length=100)y<-dnorm(x,mean=0,sd=1)title<-"Area under standard normal dist & x less than -2.33"yLabel<-"standard normal distribution"xLabel<-"x value"plot(x,y,type="l",lwd=3,col="black",main=title,xlab=xLabel,ylab=yLabel)x<-seq(-3,-2.33,length=100)y<-dnorm(x,mean=0,sd=1)polygon(c(-4,x,-2.33),c(0,y,0),col="red")相关图形如图4.3所示 。
在R、Python和Julia中常用的数据可视化技术

文章插图
 
图4.3 标准正态分布示例图
注意 , 根据上面代码中的最后一行可知 , 阴影区域为红色 。
在探索各种数据集的属性方面 , R包rattle非常有用 。如果rattle包没有预先安装 , 那么我们可以运行以下代码安装它:


推荐阅读