用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. Unix环境高级编程(十九)终端I/O

    终端I/O应用很广泛,用于终端.计算机之间的直接连线.调制解调器以及打印机等等.终端I/O有两种不同的工作模式: (1)规范模式输入处理:终端输入以行为单位进行处理,对于每个读要求,终端驱动程序最多返 ...

  2. Shell习题100例(2)

    找文件差异 grep -f 选项可以匹配到文件a在文件b中所有相关的行(取a中有b中有的) [root@centos-04 tmp]# vim b.txt vvvv root [root@centos ...

  3. shell 批量查看job 配置

    如查看构建失败发送情况 进入job 目录,查找以DailyBuild开头的job的配置文件 grep '<hudson.plugins.emailext.plugins.trigger.Fail ...

  4. java web中jsp常用标签

    在jsp页面开发过程中,经常需要使用JSTL(Java Server Pages Standard Tag Library)标签开开发页面,是看起来更加的规整舒服. JSTL主要提供了5大类标签库: ...

  5. InnoDB Master Thread I/O Rate详解

    一.innodb 在刷盘时要面对的问题: 1.对于innodb 的master thread 这个线程来说,它会在后台执行许多的任务,这些任务大多数都是与IO操作相关的, 比如“刷新脏页到磁盘”.“合 ...

  6. c++中带返回值函数没写return能通过编译但运行时会出现奇怪问题

    c++中带返回值函数没写return能通过编译但运行时会出现奇怪问题 例如: string myFunc(){ theLogics(); } 发现调用: myFunc(); 崩溃. 但调用: cout ...

  7. NGUI ScrollView出屏幕再回来坐标混乱解决

    主要是子节点没更新.乍一看调用UIPanel的Refresh()会管用,其实不然. 解决方法调用UIPanel的Invalidate让他所有子节点更新. panel.Invalidate(true);

  8. 【Android】7.4TableLayout(表格布局)

    分类:C#.Android.VS2015: 创建日期:2016-02-11 一.简介 TableLayout也是用行和列划分单元格,但不会显示Row.Column以及Cell的边框线,其子元素有许多T ...

  9. 使用UINavigationController后导致UIScollView尺寸变化

    转自:http://www.w3c.com.cn/%E4%BD%BF%E7%94%A8uinavigationcontroller%E5%90%8E%E5%AF%BC%E8%87%B4uiscollv ...

  10. 搭建MAC下vim环境

    MAC下的IDE实在是不好用,最终放弃了IDE准备直接用vim来看代码了,那么就需要设置一下vim. 将家目录下面.vim中的vimrc用下面的内容替换: " Set vundle sett ...