ZBLOG

Error in data$x$cyl : $ operator is invalid for atomic vectors

非常抱歉,我的代码有误。data$x是一个缩写方式,指代的是当前分面子图所对应的数据框。在修改x轴文本时需要使用这个数据框中的变量名进行操作。因此,在labels函数中应该使用cyl而不是data$x$cyl来获取当前子图的cyl变量值。下面是修改后的代码:

library(ggplot2)

# 创建一个包含三个分面子图的ggplot对象
p <- ggplot(mtcars, aes(x = mpg, y = wt)) + geom_point()

# 按照cyl变量进行分组,并设置好分面子图的布局
p <- p + facet_wrap(~ cyl, ncol = 3)

# 修改每个分面子图的x轴text
p <- p + scale_x_continuous(labels = function(x) {
  if (unique(cyl)[1] == 4) {
    c("A", "B", "C", "D", "E", "F")
  } else if (unique(cyl)[1] == 6) {
    c("G", "H", "I", "J", "K", "L")
  } else if (unique(cyl)[1] == 8){
    c("M", "N", "O", "P", "Q","R")
  }
})

这段代码将会创建一个包含三个分面子图的散点图,其中第一个子图(即cyl=4)x轴文本被修改为”A”-“F”,第二个子图(即cyl=6)x轴文本被修改为”G”-“L”,第三个子图(即cyl=8)x轴文本被修改为”M”-“R”。这里使用了unique(cyl)[1]来获取当前子图的cyl值,从而根据不同的值返回对应的x轴text。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=5908

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?