用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. C# 默认参数/可选参数需要注意

    在使用C#的默认参数/可选参数的时候,需要注意,参数的默认值是在编译的时候,自动加入调用方的. 如我有这样一个方法: public class Name { public void Test(Bool ...

  2. Python练习笔记——计算个人体重指数

    输入您的身高 体重 性别 计算出你的体重是否标准 gender = input('请输入您的性别(boy or girl):') height = input('请输入您的身高(单位cm):') he ...

  3. Android 手机震动功能实现

    1首先在AndroidManifest.xml中添加震动权限 <uses-permission android:name="android.permission.VIBRATE&quo ...

  4. JMeter学习-内存溢出解决方法

    现象:使用jmeter进行压力测试时遇到一段时间后报内存溢出outfmenmory错误,导致jmeter卡死了 方法一: windows环境下,修改jmeter.bat: set HEAP=-Xms2 ...

  5. Concurrency Managed Workqueue(一)workqueue基本概念

    一.前言 workqueue是一个驱动工程师常用的工具,在旧的内核中(指2.6.36之前的内核版本)workqueue代码比较简单(大概800行),在2.6.36内核版本中引入了CMWQ(Concur ...

  6. LCA近期公共祖先

    LCA近期公共祖先 该分析转之:http://kmplayer.iteye.com/blog/604518 1,并查集+dfs 对整个树进行深度优先遍历.并在遍历的过程中不断地把一些眼下可能查询到的而 ...

  7. Xfire实现webservice各种报错详解

    一.No write method for property {http://vo.aa.com}new in class com.aa.vo.TA 使用xfire的ws调用时,会将对象与xml进行捆 ...

  8. pandas 筛选指定行或者列的数据

    pandas主要的两个数据结构是:series(相当于一行或一列数据结构和DataFrame(相当于多行多列的一个表格数据机构). 原文:https://www.cnblogs.com/gangand ...

  9. mysql - 语法复习与学习

    //本月的第一天,最后一天 $start=date('Y-m-01', strtotime(date("Y-m-d"))); echo date('Y-m-d', strtotim ...

  10. Mac 开发者设置强迫症

    Latest commit 2461787 on Mar 1 原文链接 强迫症的 Mac 设置指南 如何配置一个高效的 Mac 工作环境 English Version Table of Conten ...