如何在Base R中为Y轴刻度添加千分位逗号与水平网格线
我希望为图表Y轴的刻度数字添加千分位逗号(例如"260,000"),同时添加水平网格线。请问如何在Base R中实现该操作?
解决方案
1. Y轴刻度添加千分位逗号
使用Base R内置的format()函数,通过big.mark=","参数将数值格式化为带千分位逗号的字符串。需先定义Y轴的刻度位置,再对这些位置的数值进行格式化,最后在axis(2)中指定格式化后的标签。
2. 添加水平网格线
使用grid()函数,设置nx=NA隐藏垂直网格线,通过ny参数控制水平网格线的数量,搭配col和lty设置网格线的颜色与线型(建议用虚线避免遮挡数据)。
修改后的完整代码
# 创建图表数据 breast <- c(264000,275000,280000,289000,294000) prostate <- c(148000,201000,235000, 275000,320000) year <- c("2019","2020","2021","2022", "2023") # 绘制基础图表,关闭默认坐标轴和标注 plot(breast, type="o", col="pink2", ylim=c(0,350000),pch=22,lty=2, axes=FALSE, ann=FALSE, lwd=3) lines(prostate, type = "o", pch=22, lty=2, col = "steelblue2", lwd=3) # 添加X轴 axis(1, at=1:5, lab=year) # 定义Y轴刻度位置并格式化标签 y_ticks <- seq(0, 350000, by=50000) y_labels <- format(y_ticks, big.mark=",", scientific=FALSE) # 添加带千分位逗号的Y轴,标签水平显示 axis(2, at=y_ticks, lab=y_labels, las=1) # 添加水平网格线(浅灰色虚线) grid(nx=NA, ny=length(y_ticks)-1, col="lightgray", lty=2) # 添加图例 legend(3.2,90000, legend=c('乳腺癌', '前列腺癌'), col=c('steelblue1', 'pink2'), lty=2, bty='n', lwd=3) # 可选:添加图表边框 # box() # 可选:添加坐标轴标签 # title(xlab="年份", ylab="病例数")
内容的提问来源于stack exchange,提问作者Data and AI Nerd
相关产品推荐
相关产品推荐

