横向堆积柱状图(peak distribution)

横向堆积柱状图,并添加标签

setwd('D:\\10_NM_MH_3\\03_diffpeak\\02_diff')
data<-read.csv('1plot_peak.txt',sep = '\t',header = 0)
library(reshape2)
library(ggpubr)
library(stringr)
colnames(data)<-c('baifen','feature','number','Sample')
unique(data$feature)
# data$feature<-str_replace(data$feature,"Distal Intergenic","Intergenic")
data$feature<-str_replace(data$feature,"Downstream ","Downstream (<=3kb)")
data$feature<-str_replace(data$feature,"Promoter","Promoter (<=1kb)")
unique(data$feature)
unique(data$Sample)
data$Sample<-str_replace(data$Sample,"BCD-bised1",'BbMHSs')
data$Sample<-str_replace(data$Sample,"BCD-bised2",'CbMHSs')
data$Sample<-str_replace(data$Sample,"BCD-common",'cMHSs')
data$feature<- factor(data$feature,
                      levels= c("Distal Intergenic","Downstream (<=3kb)","3' UTR","Intron ","Exon ","5' UTR",
                                "Promoter (<=1kb)"),ordered = FALSE)
class(data$baifen)
head(data)
data$baifen<-round(data$baifen,2) 
data$ratio<-paste(data$baifen*100, "%", sep='')
> head(data)
  baifen            feature number Sample ratio
1   0.04             3' UTR     66 BbMHSs    4%
2   0.02             5' UTR     35 BbMHSs    2%
3   0.38  Distal Intergenic    666 BbMHSs   38%
4   0.14 Downstream (<=3kb)    244 BbMHSs   14%
5   0.03              Exon      59 BbMHSs    3%
6   0.08            Intron     144 BbMHSs    8%
ggplot(data,aes(x=Sample,fill=feature,y=number))+
  geom_bar(stat = "identity",position ='fill',colour="black")+
  # geom_bar(position = position_stack(), stat ="identity", width = .7) +
  labs(x='',y='')+
  # facet_grid(Sample~.,scales="free",space="free")+
  scale_fill_brewer(type="seq",palette="Set2",)+
  guides(fill = guide_legend(title = '',reverse=TRUE))+
  geom_text(aes(label = ratio), position = 'fill',hjust=1.5,vjust=0.5)+
  # geom_text(aes(label=number), #position=position_dodge(width=0.9),
  #           angle =0,colour='black',,
  #           fontface = 'bold')+
  # scale_fill_hue('',type="seq",palette="Set1")+
  coord_flip()+theme_bw()+
  theme(axis.title = element_text(face = 'bold',
                                  size = "16",color = "black"),
        # legend.position = 'right',
        axis.text.x = element_text(color = "black",face = 'bold',
                                   size = 13,  hjust = 0.5, vjust = 0.5),
        axis.text.y = element_text(face = 'bold',size =13,color = "black"),
        legend.text = element_text(face = 'bold',color = "black",size = 10),
        legend.title = element_text(face = 'bold',color = "black",size = 10),
        panel.grid.major.y = element_blank(),
        panel.grid.minor.y = element_blank(),
        panel.grid.major.x = element_blank(),
        panel.grid.minor.x = element_blank(),
        legend.position="right",
        strip.text.x = element_text( face="bold",size = 14),
        #size=8,angle=75
        strip.text.y = element_text( face="bold",size = 14),
        panel.border = element_rect(colour = "black", fill=NA, size=1),
        strip.background = element_rect(colour = "white", fill = "grey"),
        plot.title = element_text(face = "bold",color = "black",lineheight=.8,  hjust=0.5, size =11),) 


在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
echarts横向叠加柱是一种数据可视化的表类型,主要用于展示不同类别的数据在同一时间段或同一维度上的对比情况。 echarts是一个基于JavaScript的开源数据可视化库,具有强大的绘能力和丰富的表类型。横向叠加柱是其中一种常用的表类型,通过将不同类别的柱在水平方向上进行叠加,可以方便地对比它们之间的差异。 横向叠加柱的绘制需要准备好数据和配置参数。数据通常以数组的形式传入,每个元素表示一个柱的数据项。可以通过设置不同的属性,如name、type、barCategoryGap等,来控制横向叠加柱的样式和布局。 要绘制一张横向叠加柱,首先需要初始化一个echarts实例,并指定绘的容器。然后,通过配置参数来定义横向叠加柱的各项属性,比如坐标轴、例、标题等。最后,将前面准备好的数据传入echarts实例中,调用绘方法即可。 横向叠加柱可以帮助我们更直观地比较多个类别的数据,在销售对比、市场份额、用户数量等方面有广泛应用。通过合理设计表的颜色、标签和交互方式,可以使数据更加易于理解和传达,有助于分析和决策。 总之,横向叠加柱是一种常用的数据可视化工具,可以通过echarts库来绘制。在实际应用中,我们可以根据需求和数据特点来调整其样式和布局,以更好地呈现数据的对比情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值