全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 数据可视化
4735 0
2019-04-12

R语言可视化案例之条形图



条形图和柱形图表示简单的频率或参数 ,可谓是最广泛使用的可视化方法之一。柱形图和条形图的适用场景几乎一样,条形图又称横向柱形图,有时候会直接把条形图视为柱形图的一种,两者较大的一个区别在于:当维度分类较多,而且维度字段名称又较长时,此时应选择条形图,因为条形图能够横向布局,方便展示较长的维度项名称。
21.png
示例1:2010年在不同国家进行的一项调查结果,有多少受访者同意“我绝对相信上帝至高无上的存在”这一说法?(参与国家有阿根廷、澳大利亚、比利时、巴西、加拿大、中国、法国、德国、英国、匈牙利、印度、美国等国家。)

柱状图和柱状图的纵横比没有共同的规律,最美观的决定因素在于:实际值、属性的数量以及它们的范围与方差,因此需要对案例反复尝试找到最佳展示方案。

  • 1. 排列方式:对于柱状图,最好降序排列(非强制),也可按字母顺序排列。
  • 2. 颜色:使用同一种颜色,单独的条/值可以用另外一种颜色突出。
  • 3. 标签:条左对齐,标签则右对齐;一般标签文本大小与条形图粗细相匹配,若标签过长,字体大小适当缩小。在标签旁添加实际值通常比较有用,若为百分数,在适当位置添加“all values in percnet”,避免重复使用“%”。
  • 4. 突出:突出颜色应与其它颜色明显区分(此处使用“magenta洋红色”),标签上字体高亮加粗
  • 5. 趋势线:作为参考值(均值、中位数等)。
  • 6. 背景标记:其区域与轴线上的标记相匹配,便于定位。
  • #布置绘图界面par(omi=c(0.65,0.25,0.75,0.75),mai=c(0.3,2,0.35,0),mgp=c(3,3,0),las=1)
    参数说明:

    • las ——坐标轴标签的风格,取值为0:始终平行与坐标轴(默认);1:始终水平;2:始终垂直于坐标轴;3:始终竖直。
    • mai ——内边距大小,c(底,左,顶,右),inches英寸,1英寸=2.54厘米。
    • omi——外边距大小,c(底,左,顶,右),inches英寸。
    • mgp——轴标题、轴标签、轴线的边距线,单位mex,默认取值c(3,1,0)。
#导入数据library(gdata)
library(xlsx)
ipsos<-read.xlsx("F:\\DataVisualzation100\\myData\\ipsos.xlsx",1,encoding='latin1')
sort.ipsos<-ipsos[order(ipsos$Percent),] #升序排列attach(sort.ipsos)
22.png
#条形图
x<-barplot(Percent,horiz = T,border = NA,xlim=c(0,100),col="grey",axes=F)
参数说明:
  • horiz=T为条形图,F为柱形图 ;
  • border=NA表示所有的bars外无框线 ;
  • axes=F无坐标刻度。
23.png
#添加轴标签
for(i in 1:length(Country)){
if(Country %in% c("Germany","Brazil")){  myfont=2 } else myfont=1    text(x=-6,y=x,labels=Country,xpd=T,adj=1,cex=0.85,font=myfont)
text(x=-1.5,y=x,labels=Percent,xpd=T,adj=1,cex=0.85,font=myfont)}
参数说明:
font ——1 plain text;2 boldface 黑体;3 italic 斜体;4 bold italic 黑斜体;5 symbol font 符号字体。不同的字体族family的12345的字体设定不一样。
adj——0左对齐文本,0.5居中对齐,1右对齐。adj取值在[0,1]。 24.png #添加背景标记rect(xleft=0,-0.5,20,22,col=rgb(191,239,255,80,maxColorValue=255),border=NA)
rect(20,-0.5,40,22,col=rgb(191,239,255,120,maxColorValue=255),border=NA)
rect(40,-0.5,60,22,col=rgb(191,239,255,80,maxColorValue=255),border=NA)
rect(60,-0.5,80,22,col=rgb(191,239,255,120,maxColorValue=255),border=NA)
rect(80,-0.5,100,22,col=rgb(191,239,255,80,maxColorValue=255),border=NA) 25.png myValue2<-c(0,0,0,0,27,0,0,0,0,0,0,0,0,84,0,0) #德国,巴西
myColour2<-rgb(255,0,210,maxColorValue=255) #洋红色
#单独绘制,颜色突出
x2<-barplot(myValue2,horiz=T,border=NA,xlim=c(0,100),col=myColour2,axes=F,add=T) 26.png #添加趋势线
arrows(45,-0.5,45,20.5,lwd=1.5,length=0,xpd=T,col="skyblue3")
arrows(45,-0.5,45,-0.75,lwd=3,length=0,xpd=T)
arrows(45,20.5,45,20.75,lwd=3,length=0,xpd=T)


text(41,20.5,"Average",adj=1,xpd=T,cex=0.65,font=3)
text(44,20.5,"45",adj=1,xpd=T,cex=0.65,family="Lato",font=4)
text(100,20.5,"All values in percent",adj=1,xpd=T,cex=0.65,font=3)
mtext(c(0,20,40,60,80,100),at=c(0,20,40,60,80,100),1,line=0,cex =0.80) 27.png


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群