用R作如下的各国Gini系数的Polar barChart:

作上图的R代码为:

library(ggplot2)

GiniData<- read.csv('IncomeInequality.csv',head=T)

Gini<- ggplot(GiniData, aes(x=paste(GiniIndex,Country),y=GiniIndex,fill=GiniIndex%/%10))

Gini<- Gini +geom_bar(stat="identity",position="dodge")+coord_polar()

Gini<- Gina + scale_fill_continuous(high="darkred",low="darkgreen")

Gini<- Gini + theme(

panel.background=element_rect(fill="white",colour = "white",size=0),

axis.text=element_blank(),

axis.title=element_blank(),

legend.title=element_blank())

x <-c(1:dim(GiniData)[1])

Gini +geom_text(

aes(

x=x,

label=paste(GiniData$GiniIndex,GiniData$Country),

angle=270-x/134*360,

hjust=1),                           #hjust控制标签的对齐方式

y=GiniData$GiniIndex+3,

size=3,

vjust=0)

有关颜色变化的代码,用黄色的底纹标示了出来。

还可以试一下angle=90-x/134*360,hjust=0。这样的话,文字的方向会反过来。

作图的相关数据和结果,可以参看http://www.rpubs.com/helengyy/135140

把中国的Gini系数标出来的Polarbar Chart:

作上图的R代码为:

Gini<- ggplot(GiniData, aes(x=paste(GiniIndex,Country),y=GiniIndex,

fill=(sign(GiniIndex-41.60)+sign(Country=="Coted'lvoire")*2)*sign(Country!="China")))

Gini<- Gini + geom_bar(stat="identity",position="dodge")+coord_polar()

Gini<- Gini + scale_fill_continuous(high="darkred",low="darkgreen")

Gini<- Gini + theme(

panel.background=element_rect(fill="white",colour = "white", size=0),

axis.text=element_blank(),

axis.title=element_blank(),

legend.title=element_blank())

x <-c(1:dim(GiniData)[1])

Gini +geom_text(

aes(

x=x,

label=paste(GiniData$GiniIndex,GiniData$Country),

angle=270-x/134*360,

hjust=1),                #hjust控制标签的对齐方式

y=GiniData$GiniIndex+3,

size=3,

vjust=0)

代码中和第1张图不一样的地方,也用黄色底纹标示出来了。

以最大值最小值为顶的箱图:

假设,我们有A、B、C、D、E班级的某一门科目的最高分和最低分,还有整个年级的平均分,我们用箱图来观察各班最高分最低分距年级平均分的距离。R代码如下:

x <- matrix(c(36,97,33,89,45,99,51,93,47,88),2,5)

boxplot(x,medlty="blank",

#medlty="blank"就是把四分位盒式图(箱图)的须须去掉

names=c("A","B","C","D","E"),

col="pink", boxwex=0.35)

abline(h=71,col="navy", lwd=2, lty=5)

表示数据在最大最小之间位置的线型图:

若某位同学A, B, C, D, E五门课的成绩

X <- matrix(c(36,88,97,33,86,89,45,77,99,51,90,93,47,65,88),3,5)

Y <-c(1:5)

plot(c(X[1,],X[3,],X[2,]),c(Y,Y,Y),

pch = c(rep(19,10),rep(4,5)),

cex = 1.5,

col = c(rep("seagreen",10),

rep("magenta",5)),

lwd = 2,

xlab = "成绩",ylab= "科目",

yaxt = "n")                     #y轴的坐标标签去掉

#设置y轴的坐标标签

axis(2,at = c(1:5), labels = c("A","B","C","D","E"))

arrows(c(X[2,],X[2,]),c(Y,Y),

c(X[1,],X[3,]), c(Y,Y),

col = "springgreen",

lwd = 2,

length = 0.15,

angle = 20,

)

从图中可以看出该学生的成绩离最低分近还是靠近最高分。

祝大家2016年新年新气象!

作者:顾运筠。应用数学硕士,职业院校的统计老师。对机器学习和数据可视化感兴趣。

用R作Polar图等的更多相关文章

  1. R绘制韦恩图 | Venn图

    解决方案有好几种: 网页版,无脑绘图,就是麻烦,没有写代码方便 极简版,gplots::venn 文艺版,venneuler,不好安装rJava,参见Y叔 酷炫版,VennDiagram 特别注意: ...

  2. Python中作Q-Q图(quantile-quantile Plot)

    Q-Q图主要可以用来回答这些问题: 两组数据是否来自同一分布 PS:当然也可以用KS检验,利用python中scipy.stats.ks_2samp函数可以获得差值KS statistic和P值从而实 ...

  3. R语言---热图的制作

    >install.packages("gplots") > library("gplots")> p <- data.frame(rea ...

  4. R语言-时间序列图

    1.时间序列图 plot()函数 > air<-read.csv("openair.csv") > plot(air$nox~as.Date(air$date,& ...

  5. R语言-线图(二)

      1.线图示例 plot()为高水平作图命令,axis().lines().legend()都为低水平作图命令 > rain<-read.csv("cityrain.csv&q ...

  6. 用R画韦恩图

    #导入R包 library(grid)library(futile.logger)library(VennDiagram) #建立测试数据集 A = 1:150B = c(121:170,300:32 ...

  7. R 画structure图

    id percent  k1_B04_WL-1.fs_1   0.021 k31_B04_WL-1.fs_1   0.624 k21_B04_WL-1.fs_1   0.355 k1 K=3  数据输 ...

  8. 利用opencv作透明重叠人群密度热度图

    在作热度图的时候我们经常需要将热度图调整透明度后叠加在原图上达到更好的展示效果.比如检测人气密度的热度图: (来自sensetime) 一般作图的时候会第一时间想到matplotlib,因为可以很方便 ...

  9. R提高篇(五): 描述性统计分析

    数据作为信息的载体,要分析数据中包含的主要信息,即要分析数据的主要特征(即数据的数字特征), 对于数据的数字特征, 包含数据的集中位置.分散程度和数据分布,常用统计项目如下: 集中趋势统计量:  均值 ...

随机推荐

  1. Oracle游标解析

    本节对Oracle中的游标进行详细讲解. 本节所举实例来源Oracle中scott用户下的emp表dept表: 一.游标: 1.概念: 游标的本质是一个结果集resultset,主要用来临时存储从数据 ...

  2. Android 在已有的项目上创建新的项目

    原工程 右键Copy   再右键点Paste 改新的工程名

  3. asp.net 在线解压缩文件类

    using System; using System.Collections.Generic; using System.Text; using System.IO; using Microsoft. ...

  4. npm 国内淘宝镜像cnpm、设置淘宝源

    1.下载和使用cnpm 某些插件很奇怪,需要用国内的镜像下载才可以 #安装淘宝镜像npm install cnpm -g --registry=https://registry.npm.taobao. ...

  5. python标准库介绍——28 md5 模块详解

    ==md5 模块== ``md5`` (Message-Digest Algorithm 5)模块用于计算信息密文(信息摘要). ``md5`` 算法计算一个强壮的128位密文. 这意味着如果两个字符 ...

  6. Spring mvc中DispatcherServlet详解

    简介 DispatcherServlet是前端控制器设计模式的实现,提供SpringWebMVC的集中访问点,而且负责职责的分派,而且与spring IOC容器无缝集成,从而可以获得Spring的优势 ...

  7. WPF控件TreeView使用

    需要多级嵌套要用TreeViewItem,而这个在大纲视图右键控件可以点出来. 代码控制嵌套Items就可以. 如果显示"(集合)",检查嵌套的是不是TreeViewItem的It ...

  8. 关于navigationBar的颜色计算与默认透明度

    NavigationBar的默认透明度为85% 颜色叠加计算公式: RGB需要分开计算,以叠加白色背景为例: 原始颜色(217,10,20) 设置透明度85% 计算过程: R=217 + (255-2 ...

  9. [转]如何使用Fiddler抓取指定浏览器的数据包

    参考资料:https://www.cnblogs.com/lauren1003/p/6519630.html 使用fiddler抓取不到浏览器的包时常用的解决办法: 1.必须先打开Fiddler,再打 ...

  10. Oracle PLSQL Demo - 31.执行动态SQL拿一个返回值

    DECLARE v_sql ) := ''; v_count NUMBER; BEGIN v_sql := v_sql || 'select count(1) from scott.emp t'; E ...