You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用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))

额外说明

  1. 如果你的目标是使用cmtn数据集绘制,先运行str(cmtn)查看数据集的结构,确认里面的数值列名称,再替换x的定义,比如:
    # 假设cmtn里有你需要的对应列,提取列数据
    x <- cmtn[, c("Importation","Exportation","Formation brute de capital")] # 补全所有需要的列名
    # 如果是单行列数据,记得转置:x <- t(cmtn[1, c(...)])
    
  2. space=1.5设置柱子之间的间距为1.5倍宽度,这个参数可以根据你的视觉需求调整数值。
  3. 手动添加标签时,srt=45让标签旋转45度,adj=1让标签右对齐,xpd=TRUE允许标签超出绘图区域,防止长标签被截断。

内容的提问来源于stack exchange,提问作者Soumaya Gammoudi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:38:01