R语言ggplot2绘图——柱状图

      版权声明:本文为博主原创文章,未经博主允许不得转载。          https://blog.csdn.net/qq_34023608/article/details/51852211        </div>
        <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-f57960eb32.css">
                          <div id="content_views" class="markdown_views prism-atom-one-dark">
        <!-- flowchart 箭头图标 勿删 -->
        <svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
          <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path>
        </svg>
        <p></p><div class="toc"><div class="toc">

柱状图

绘制柱状图

数据准备

这里是ggplot2中的diamonds数据框中的随机抽取100条数据:

library(ggplot2)
set.seed(100)
small<-diamonds[sample(nrow(diamonds),100),]
small<-within(small,{
    obj<-NA
    val<-NA
    obj<-c("a","b","c","d","e","f",rep(NA,94))
    val<-c(2,1,3,4,7,5,rep(NA,94))}

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

)

画出初始图:

data1=na.omit(small[c("obj","val")])
ggplot(data=data1,mapping=aes(x=obj,y=val,fill=obj,group=factor(1)))+
  geom_bar(stat="identity")

 
 
  • 1
  • 2
  • 3

注释:
stat=”“identity”:指定了柱状图的高度(y)
fill=obj:填充的柱状图的颜色

这里写图片描述

修改柱状图的宽度

ggplot(data=data1,mapping=aes(x=obj,y=val,fill=obj,group=factor(1)))+
  geom_bar(stat="identity",width=0.5)

 
 
  • 1
  • 2

注释:
width=0.5
这里写图片描述

修改柱形图的顺序

data1<-within(data1,{
  obj<-factor(obj,levels=c("e","f","b","c","d","a"))
})

ggplot(data=data1,mapping=aes(x=obj,y=val,fill=obj,group=factor(1)))+
  geom_bar(stat="identity")

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

注释:
柱状图的顺序是根据因子水平顺序来排列的:
obj<-factor(obj,levels=c(“e”,”f”,”b”,”c”,”d”,”a”))
这里写图片描述

柱条上添加文字

ggplot(data=data1,mapping=aes(x=obj,y=val,fill=obj,group=factor(1)))+
  geom_bar(stat="identity")+
  geom_text(aes(label = val, vjust = -0.8, hjust = 0.5, color = obj), show.legend = TRUE)

 
 
  • 1
  • 2
  • 3

注释:
vjust:柱条上文字的纵坐标的位置(垂直位置,以柱条顶面线为原点)
hjust:柱条上文字的横坐标的位置(水平位置,以柱条顶面线的中点为原点)
show.legend:此文本是否包含到图例之中(NA(default),FALSE,TRUE)

这里写图片描述

主题

这里需要先安装ggthemes包。

library(ggthemes)
ggplot(data=data1,mapping=aes(x=obj,y=val,fill=obj,group=factor(1)))+
  geom_bar(stat="identity")+
  geom_text(aes(label = val, vjust = -0.7, hjust = 0.5, color = obj), show.legend = TRUE)+
  theme_economist()

 
 
  • 1
  • 2
  • 3
  • 4
  • 5

注释:
在ggthemes中有很多的各种主题,在这里只使用了其中的theme_economist主题

这里写图片描述

对坐标轴进行限制

ggplot(data=data1,mapping=aes(x=obj,y=val,fill=obj,group=factor(1)))+
  geom_bar(stat="identity")+
  geom_text(aes(label = val, vjust = -0.7, hjust = 0.5, color = obj), show.legend = TRUE)+
  theme_economist()+
  ylim(min(data1$val,0)*1.1,max(data1$val)*1.1)

 
 
  • 1
  • 2
  • 3
  • 4
  • 5

这里写图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>