如何用R绘制条形图?使用cmtn数据集绘图失败求助
解决R条形图绘制失败的问题
我来帮你梳理下代码里的问题,以及如何修复来成功画出条形图~
首先看你代码里的明显问题:
- 颜色参数
col的向量被截断了:col = c("indianred","indianred1","indianred2","i...,你的x有10个元素,颜色向量的长度必须和x的长度一致,否则R会报错或者出现异常显示。 - 你提到使用了
cmtn数据集,但代码里是手动创建的x向量,如果是想从cmtn提取数据,需要先正确引用数据集的列(比如x <- cmtn$对应的列名),先确认这一点哦。
修正后的完整代码示例
先针对你手动创建的x向量修复,确保能正常运行:
# 定义数据向量 x <- c(42012.8,36328.2,546.9,109.4,7123.3,80865.5,11133.3,1325.4,9214.5,9290.3) names(x)=c("Importation","Exportation","Formation brute de capital","Impots sur production", "valeur ajoutees ", "PIB","Production_secteur","Salaires" ,"Credits","valeur_produits") # 自动生成10个渐变的indianred系颜色(避免手动逐个写颜色的麻烦) bar_cols <- colorRampPalette(c("indianred", "indianred4"))(10) # 绘制条形图,这里保留你设置的axisnames=FALSE,之后手动添加标签避免重叠 barplot(x, space = 1.5, axisnames = FALSE, col = bar_cols) # 手动添加x轴标签,旋转45度防止长标签重叠 text(seq(1.5, length(x)*2.5, by=2.5), par("usr")[3]-1000, srt=45, adj=1, xpd=TRUE, labels=names(x))
额外说明
- 如果你的目标是使用
cmtn数据集绘制,先运行str(cmtn)查看数据集的结构,确认里面的数值列名称,再替换x的定义,比如:# 假设cmtn里有你需要的对应列,提取列数据 x <- cmtn[, c("Importation","Exportation","Formation brute de capital")] # 补全所有需要的列名 # 如果是单行列数据,记得转置:x <- t(cmtn[1, c(...)]) space=1.5设置柱子之间的间距为1.5倍宽度,这个参数可以根据你的视觉需求调整数值。- 手动添加标签时,
srt=45让标签旋转45度,adj=1让标签右对齐,xpd=TRUE允许标签超出绘图区域,防止长标签被截断。
内容的提问来源于stack exchange,提问作者Soumaya Gammoudi
相关产品推荐
相关产品推荐

