zoukankan      html  css  js  c++  java
  • 用R作Polar图等

    用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年新年新气象!

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

  • 相关阅读:
    WCF、WebAPI、WCFREST、WebService之间的区别
    常见的排序方法
    PHP中日期时间函数date()用法总结
    controller中获取全局配置111
    Zf2 自定义组件库如何设置
    module/config/module.config.php文件内涵定义
    zf2环境设置
    菜菜鸟Zend Framework 2 不完全学习涂鸦(四)-- 模块
    菜菜鸟Zend Framework 2 不完全学习涂鸦(三)-- 例子功能设置
    菜菜鸟Zend Framework 2 不完全学习涂鸦(二)-- 类库共享
  • 原文地址:https://www.cnblogs.com/awishfullyway/p/6509293.html
Copyright © 2011-2022 走看看