R语言绘图 | 堆叠图的绘制

目标:绘制每一种亚类的堆叠图,使呈现效果更好。是时候要挑战一下自己的舒适区了。传统的barplot实在是不行了。

1。首先综述一下目前用到了实现这一功能,用的是哪些package。

library(ggplot2) #似乎ggplot2就能实现这一效果。

2。其次创建输入数据矩阵。

data<-data.frame(Sample<-c(rep('control1',3),rep('control2',3),rep('control3',3),rep('treat1',3),rep('treat2',3),rep('treat3',3),rep('treat4',3)), contion<-rep(c('Cell','Tissue','Organ'),7), value<-c(503,264,148,299,268,98,363,289,208,108,424,353,1,495,168,152,367,146,48,596,143))
colnames(data)=c('sample',"contion","value")

创建出数据集长这样:

sample contion value
1 control1 Cell 503
2 control1 Tissue 264
3 control1 Organ 148
4 control2 Cell 299
5 control2 Tissue 268
6 control2 Organ 98
7 control3 Cell 363
8 control3 Tissue 289
9 control3 Organ 208
10 treat1 Cell 108

3。设置参数,绘图。

ggplot(data,mapping = aes(Sample,value,fill=contion))+geom_bar(stat='identity',position='fill') +labs(x = 'Sample',y = 'frequnency') +theme(axis.title =element_text(size = 16),axis.text =element_text(size = 14, color = 'black'))+theme(axis.text.x = element_text(angle = 45, hjust = 1))+coord_flip()
#实际上就很简单,把相应的参数放进槽里面即可

在这里插入图片描述
到这边的话,就满足需求了。对于我自己的数据的话,可能需要构建一个能够使用的数据矩阵。然后,构建完成数据矩阵之后,剩下的就很简单了。

参考链接:
https://www.jianshu.com/p/a37dac699490

### 如何使用R语言中的`ggplot2`绘制堆叠柱状图 为了创建堆叠柱状图,在R语言中可以利用强大的图形包`ggplot2`来实现这一目标。下面展示了一种具体的方法,通过构建一个简单的例子说明如何操作。 #### 创建数据集 首先定义一个合适的数据结构对于后续绘图至关重要。这里假设有一个数据框包含了不同类别下的数值信息,这些信息用于构成最终的图表[^2]。 ```r data <- data.frame( city = rep(c('Beijing', 'Shanghai'), each=3), type = factor(rep(letters[1:3], times=2)), value = c(10, 20, 30, 40, 50, 60) ) ``` 此段代码初始化了一个名为`data`的数据框,它由三个变量组成:城市名称(`city`)、分类标签(`type`)以及对应的值(`value`)。 #### 构建基础图形对象 有了准备好的数据之后,就可以调用`ggplot()`函数开始搭建基本框架,并指定横坐标轴为城市名,纵坐标轴表示具体的数量大小;同时设置填充颜色依据于不同的类型区分各个部分。 ```r library(ggplot2) p <- ggplot(data, aes(x=city, y=value, fill=type)) ``` 这段脚本加载了必要的库并建立了初步的绘图环境,其中指定了x轴上的分组因素(即城市),y轴上代表的具体测量值,还有用来着色的不同种类。 #### 添加几何层以形成堆叠效果 为了让条形之间相互叠加而不是并列排列,需向上述基础上追加一层几何形状——直方图(bar),并通过调整参数让它们按照比例填满整个高度范围,从而达到预期的效果[^4]。 ```r p + geom_bar(stat='identity', position='stack') ``` 此处的关键在于选择了`position='stack'`选项使得各成分能够垂直累积起来,而`stat='identity'`则告诉系统直接采用原始输入作为统计量而非计算频率或其他衍生指标。 #### 进一步美化和完善图表细节 最后还可以继续优化视觉呈现方式,比如修改主题样式、增加标题或者自定义配色方案等,使生成的作品更加美观大方且易于理解。 ```r p + geom_bar(stat='identity', position='stack') + labs(title="Stacked Bar Chart Example") + theme_minimal() ``` 综上所述,借助于`ggplot2`的强大功能,只需几行简洁明了的命令就能轻松制作出专业的堆叠柱状图作品。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值