如图所示,三种不同类型的图表,但是在本质上都可以看成是克利夫兰点图,所以就归纳成同一类别:
棒棒糖图(LollipopChart):棒棒糖图传达了跟柱形图或者条形图相同的信息,只是将矩形转变成线条,这样可减少展示空间,重点放过在数据点上,从而看起来更加简洁与美观。相对于柱形图与条形图,棒棒糖图更加适合数据量比较多的情况。图(a)为横向棒棒糖图,对应条形图;而如果是纵向棒棒糖图则对于柱形图。
克利夫兰点图(Cleveland'sDot Plots):也就是我们常用的滑珠散点图,非常类似于棒棒糖图,只是没有连接的线条,重点强调数据的排序展示以及互相之间的差距。如图(b)所示。克利夫兰点图一般都是横向展示,所以Y轴变量一般为类别型变量。
哑铃图(DumbbellPlot):可以看成多数据系列的克利夫兰点图,只是使用直线连接了两个数据系列的数据点。哑铃图可以主要用于:1.展示在同一时间段两个数据点的相对位置(增加或者减少),2.比较两个类别之间的数据值差别。如图(c)所示,就是展示了男性(male)和女性(Female)两个类别的数值差别,以女性(Female)数据系列的数值排序显示。
克利夫兰点图
R语言ggplot2包就提供了点状图绘制的函数:geom_point。3-3-1(b)克利夫兰点图的实现代码如下所示:
mydata<-read.table("克利夫兰点图.txt",header = TRUE)order<-sort(mydata$Revenue,index.return=TRUE,decreasing = FALSE)mydata$City<- factor(mydata$City, levels = mydata$City[order$ix])ggplot(mydata, aes(Revenue, City)) + geom_point(shape=21,size=3,colour="black",fill="#FC4E07")
哑铃图
R语言ggplot2包就提供了点状图绘制的函数:geom_point。3-3-1(c)哑铃图的实现代码如下所示:
mydata<-read.table("哑铃图.txt",header = TRUE)mydata$City <- factor(mydata$City, levels = mydata$City[order(mydata$Female)])mydata<-melt(mydata,id.vars='City')ggplot(mydata, aes(value,City,fill=variable)) + geom_line(aes(group = City)) + geom_point(shape=21,size=3,colour="black")
棒棒糖图
R语言ggplot2包就提供了点状图绘制的函数:geom_point。3-3-1(a)棒棒糖图的实现需要添加辅助数据系列,代码如下所示:
mydata<-read.table("克利夫兰点图.txt",header = TRUE)order<-sort(mydata$Revenue,index.return=TRUE,decreasing = FALSE)mydata$City<- factor(mydata$City, levels = mydata$City[order$ix])mydata<-mutate(mydata,Line= rep(0,nrow(mydata))) #添加辅助数据mydata<-melt(as.data.frame(mydata),id.vars='City')ggplot(mydata, aes(value, City)) + geom_point(aes(shape=variable),size=3,colour="black",fill="#FC4E07")+ geom_line(aes(group = City)) + scale_shape_manual(values=c(21,NA))