R语言绘制简单条形图

本文档详细介绍了如何利用R语言对2000个消费者网购情况进行分析,包括性别、网购次数和满意度的数据。通过read.csv()读取数据,使用table()生成一维表,并用barplot()函数绘制了性别、网购次数和满意度的条形图,展示了不同类别间的分布情况。在图形绘制过程中,调整了图形边距、字体大小和填充效果,使得图表更加清晰易读。

自己用了一个csv文件
要求:
数据:data3_1.csv.根据2000个消费者网购情况的调查数据,分别绘制性别,
网购次数和满意度的条形图。其结果如下所示
在这里插入图片描述
(1) 使用 read.csv()读取数据到 data3_1 中,可以采用绝对路径或者相对路
径形式读取文件。
(2) 在 R 控制台查看 data3_1 的内容
(3) 查看 data3_1 的模式
(4) 使用 attach()函数绑定列表 data3_1
(5) 使用 table()生成性别的一维表到 table1
(6) 使用 table()生成网购次数的一维表到 table2
(7) 使用 table()生成满意度的一维表到 table3
(8) 使用 layout()进行页面布局,按行存放图形
(9) 使用 par() 设 置 图 形 的 边 距 和 字 体 大 小 :
par(mai=c(0.6,0.6,0.4,0.1),cex=0.7)
(10) 使用barplot()绘制图(a),参数density=30,angle=0,分别设置填充
密度和密度线的角度。参数 border=”blue”,即边框线设为蓝色。
(11) 使用 barplot()绘制图(b), 参数 density=20,angle=90.
(12) 使用 barplot()绘制图(c),颜色设置自行选择

 text <- read.csv("D:\\R语言\\data3_1.csv",sep=",",header=TRUE)
 text
 

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
(9) 使用 par() 设 置 图 形 的 边 距 和 字 体 大 小 :
par(mai=c(0.6,0.6,0.4,0.1),cex=0.7)
(10) 使用barplot()绘制图(a),参数density=30,angle=0,分别设置填充
密度和密度线的角度。参数 border=”blue”,即边框线设为蓝色。
(11) 使用 barplot()绘制图(b), 参数 density=20,angle=90.
(12) 使用 barplot()绘制图(c),颜色设置自行选择。

> layout(matrix(c(1,2,3,3),2,2,byrow=TRUE))
> par(mai=c(0.6,0.6,0.4,0.1),cex=0.7)
> > barplot(table1,main="(a)水平条形图",xlab="人数",ylab="性别",horiz=TRUE,density=30,angle=0,border="blue")
> barplot(table2,main="(b)垂直条形图",xlab="网购次数",ylab="人数",horiz=FALSE,density=20,angle=90)
> barplot(table2,main="(C)垂直条形图",xlab="满意度",ylab="人数",col=cm.colors(3))

R语言中barplot()函数的基本语法格式如下:

barplot(height, names.arg = NULL, beside = FALSE,horiz = FALSE, density = NULL, angle = 45,col = NULL, border = par(“fg”),main = NULL, sub = NULL, xlab = NULL, ylab = NULL,xlim = NULL, ylim = NULL, …)
height:向量或矩阵,用来构成条形图中各条的数值。

names.arg:位于条低端的文字标签。

beside: 逻辑值,为FALSE时绘制堆叠图,为TRUE时绘制分组图。

horiz: 逻辑值,为FALSE时,绘制垂直条形图,为TRUE时绘制水平条形图。

density:一个向量值。当指定该值时,条将以斜线填充。即每英寸斜线的密度。

angle:以逆时针方向给出的阴影线的角度。默认为45度。

col:条的填充色。

border:条的边框颜色,如设置为TRUE时,边框颜色将于阴影线的颜色相同。

main:用于指定绘图的主标题。

sub:用于指定绘图的次标题。

xlab, ylab :用于指定x轴和y轴的标签。

xlim, ylim:分别用于指定x轴和y轴的取值范围。

<think> 我们注意到用户引用的内容中提到了条形图绘制,特别是引用[1]中提到了KEGG富集分析结果(包含通路名称和p值等)的表格数据,用户希望绘制KEGG条形图(很可能是富集分析结果的条形图)。 在之前的回答中,我们已经展示了使用pathview绘制通路基因映射图和使用ggplot2绘制气泡图。现在用户明确要求绘制条形图,因此我们将重点展示如何用条形图展示KEGG富集结果。 通常,KEGG富集分析结果条形图会展示通路的富集显著性(如p值或调整p值)以及富集基因数量等。常见的条形图有两种形式: 1. 水平条形图(通路名称在Y轴,便于展示长名称) 2. 垂直条形图(通路名称在X轴,但长名称可能重叠) 由于引用[1]中提到了筛选显著通路和手动调整,以及引用[3][4]展示了水平条形图(coord_flip),我们将采用水平条形图。 步骤: 1. 导入数据(如引用[1]中的表格,包含通路名称、p值、富集基因数等) 2. 筛选显著通路(例如按p值排序取Top10) 3. 使用ggplot2绘制水平条形图,用条形长度表示富集显著性(如-log10(p值)),颜色表示富集基因数量(Count)或其他指标。 以下为详细代码示例: </think> ### R语言绘制KEGG富集分析条形图的方法 KEGG富集分析条形图主要用于展示显著富集的通路及其统计学意义。以下是详细绘制方法: #### 一、数据准备与筛选 首先读取富集分析结果并筛选显著通路: ```R # 导入数据(CSV或TXT格式) kegg_data <- read.csv("KEGG_results.csv", header = TRUE, row.names = 1) # 筛选Top10显著通路(按p值排序) library(dplyr) top_kegg <- kegg_data %>% arrange(P.Value) %>% # 按p值升序排序 head(10) # 取前10条通路 ``` #### 二、基础条形图绘制 使用`ggplot2`绘制水平条形图展示富集显著性: ```R library(ggplot2) ggplot(top_kegg, aes( x = -log10(P.Value), # X轴:富集显著性 y = reorder(Pathway, -log10(P.Value)) # Y轴:通路名称(按显著性排序) )) + geom_bar(stat = "identity", fill = "#1E90FF", width = 0.7) + # 蓝色条形 labs( x = expression(-log[10](P-value)), # X轴标签 y = "KEGG Pathway", # Y轴标签 title = "Top 10 Enriched KEGG Pathways" ) + theme_minimal() + theme(axis.text.y = element_text(size = 10)) ``` **效果**:生成水平条形图,条形长度表示$-\log_{10}(\text{P-value})$值[^1][^2] #### 三、高级定制技巧 1. **添加富集基因数量标签** ```R ggplot(top_kegg, aes(x = -log10(P.Value), y = reorder(Pathway, -log10(P.Value)))) + geom_bar(stat = "identity", fill = brewer.pal(9, "Reds")[6]) + geom_text(aes(label = Count), # 添加基因数量标签 hjust = -0.2, size = 3.5, color = "darkred") + scale_fill_brewer(palette = "Reds") # 使用红色系配色[^4] ``` 2. **双变量分组条形图** 当需要同时展示上下调基因时: ```R # 创建模拟数据(含上下调基因数) kegg_data$Up <- sample(5:20, 10) kegg_data$Down <- sample(5:15, 10) ggplot(kegg_data, aes(y = reorder(Pathway, -log10(P.Value)))) + geom_bar(aes(x = Up, fill = "Upregulated"), stat = "identity") + geom_bar(aes(x = -Down, fill = "Downregulated"), stat = "identity") + scale_fill_manual(values = c("Upregulated" = "red", "Downregulated" = "blue")) + labs(x = "Gene Count", fill = "Regulation") + geom_vline(xintercept = 0, linetype = "solid") # 添加中线[^3] ``` #### 四、实用参数调整 - **配色方案**:`scale_fill_brewer(palette = "YlOrRd")` 使用黄色到红色渐变[^4] - **排序控制**:`reorder(Pathway, EnrichmentScore)` 按富集分数排序 - **输出保存**: ```R ggsave("KEGG_Barplot.pdf", width = 10, height = 8, dpi = 300) ``` > **关键提示**:对于长通路名称,建议使用`stringr::str_wrap()`自动换行: > ```R > top_kegg$Pathway <- stringr::str_wrap(top_kegg$Pathway, width = 30) > ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值