R语言绘图:如何将X轴刻度替换为自定义分组标签?
解决R折线图X轴标签替换问题
先修正代码拼写错误
你当前代码里的data$Minimium是拼写错误,应该改为data$Minimum。
方法一:手动自定义X轴标签(基础绘图)
先绘制折线图但隐藏默认X轴,再手动添加自定义标签:
# 先构造数据框(如果还没创建) data <- data.frame( Block = c(1,2,3,4,5), Breaks = c("1 Mio. - 2 Mio.", "2 Mio. - 3 Mio.", "3 Mio. - 4 Mio.", "4 Mio. - 5 Mio.", "5 Mio. - 6 Mio."), Minimum = c(1,2,3,4,5), MEAN = c(4,5,4,6,7) ) # 绘图时关闭默认X轴 plot(data$Minimum, data$MEAN, type = "b", xlab = "Size", ylab = "Mean Value", main = "Mean Value per Size", xaxt = "n") # xaxt="n" 不绘制默认X轴 # 添加自定义X轴标签 axis(side = 1, at = data$Minimum, labels = data$Breaks, las = 2)
side=1指定操作X轴at设置刻度位置(对应Minimum的数值)labels设置要显示的分组标签(Breaks内容)las=2让标签垂直显示,避免长标签重叠
方法二:使用因子直接指定X轴标签(更简洁)
将Minimum转换为带自定义标签的因子,直接用因子作为X轴绘图:
# 构造数据框 data <- data.frame( Block = c(1,2,3,4,5), Breaks = c("1 Mio. - 2 Mio.", "2 Mio. - 3 Mio.", "3 Mio. - 4 Mio.", "4 Mio. - 5 Mio.", "5 Mio. - 6 Mio."), Minimum = c(1,2,3,4,5), MEAN = c(4,5,4,6,7) ) # 转换为带自定义标签的因子 data$SizeFactor <- factor(data$Minimum, labels = data$Breaks) # 用因子绘图,X轴直接显示Breaks标签 plot(data$SizeFactor, data$MEAN, type = "b", xlab = "Size", ylab = "Mean Value", main = "Mean Value per Size")
补充:解决最初用Breaks直接绘图的报错
你之前直接用Breaks作为X轴报错,是因为Breaks是字符型,基础plot函数需要将其转为离散因子处理,直接用以下代码也能实现需求:
plot(factor(data$Breaks), data$MEAN, type = "b", xlab = "Size", ylab = "Mean Value", main = "Mean Value per Size")
内容的提问来源于stack exchange,提问作者Li4991
相关产品推荐
相关产品推荐

