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

如何在R基础绘图中将Y轴刻度从小数转为百分比(不使用ggplot)

R基础绘图Y轴改为百分比格式(无需ggplot)

直接通过手动自定义Y轴刻度就能实现,修改你的代码如下:

# 先绘制基础图,禁用默认Y轴
plot(x = dfinvtprop$fyear, y = dfinvtprop$ratio, type="l", lty=2, lwd=3, col="darkgrey", 
     xlab="年份", cex.lab=2, cex.main=1.5, ylab="占总资产比例", cex.axis=1.5, 
     main = "A: 各类资产占总资产比例", ylim=c(0, 0.65), xlim=c(1980,2020), yaxt="n")

# 手动添加带百分比的Y轴
axis(2, at = seq(0, 0.6, by = 0.1), labels = paste0(seq(0, 60, by = 10), "%"), cex.axis=1.5)

# 后续的线条和文本保持不变
lines(x = dfacqprop$fyear, y= dfacqprop$ratio, lwd=3, type="l", col="black")
lines(x = dfotherinttprop$fyear, y = dfotherinttprop$ratio, type="l", lty=4, lwd=3, col="black")
text(x=1988, y=0.4, labels="生产性资产", col="darkgrey", cex=2)
text(x=2010, y=0.18, label="商誉", col="black", cex=2)
text(x=2013, y=0.06, label="无形资产", col="black", cex=2)
text(x=2013, y=0.025, label="(不含商誉)", col="black", cex=2)

关键修改点说明:

  • yaxt="n":禁用默认Y轴,避免和自定义轴重复
  • axis(2, ...):手动生成左侧Y轴(参数2代表左侧):
    • at:指定刻度对应的数值位置(比如0对应0%,0.1对应10%)
    • labels:设置要显示的百分比文本,用paste0拼接数字和%符号
  • 如果需要适配任意小数数值,也可以用sprintf批量生成标签,比如:
    y_ticks <- seq(0, 0.65, by=0.05)
    axis(2, at=y_ticks, labels=sprintf("%d%%", y_ticks*100), cex.axis=1.5)
    

内容的提问来源于stack exchange,提问作者Ayoze Alfageme

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 06:41:31