首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何与ggplot2一起使用visreg更改轴标签

如何与ggplot2一起使用visreg更改轴标签
EN

Stack Overflow用户
提问于 2019-04-15 19:54:33
回答 1查看 2.2K关注 0票数 5

我使用visreg包和gg = TRUE (所以它将使用ggplot2图形)来渲染我的拟合模型图。

它自动使用自变量元素的名称作为x轴标签,但我需要它们稍微有所不同,并尝试使用scale_x_discrete更改标签文本,就像可以看到的这里一样。

但是当我这样做的时候,x轴标签,轴线和它的标题变成空白。我认为我未能将labels参数映射到breaks参数。

我也收到消息了

“x”的比例已经存在。为“x”添加另一个刻度,这将取代现有的刻度。

问题可能在于visreg如何存储变量(及其级别)信息。单独使用ggplot2时,可以使用data$variablename轻松地从使用过的数据集中恢复这些信息。但是,通过visreg创建基本的绘图,这就不那么简单了。

我已经尝试过的是:

  • 使用默认绘制的变量级别的名称作为断点。
  • 尝试使用fit$xlevels$Species访问变量级别。
  • 猜测visreg可以将整数定义为级别,并尝试使用breaks = c(as.factor("1","2","3"))

如何重现问题:

代码语言:javascript
复制
library(visreg)
library(ggplot2)

data(iris)
fit <- lm(Sepal.Length ~ Species, data = iris)

visreg(fit, gg = T) +
  theme(axis.line = element_line(colour = "black")) +
  scale_x_discrete(breaks = c("setosa", "versicolor", "virginica"),
                   labels = c("SETOSA", "VERSICOLOR", "VIRGINICA"))

# ----------------------- OR the equivalent: 

visreg(fit, gg = T) +
  theme(axis.line = element_line(colour = "black")) +
  scale_x_discrete(labels = c("setosa" = "SETOSA",
"versicolor" = "VERSICOLOR", "virginica" = "VIRGINICA"))

在不改变标签的情况下,x轴看起来如何:

代码语言:javascript
复制
library(visreg)
library(ggplot2)

data(iris)
fit <- lm(Sepal.Length ~ Species, data = iris)

visreg(fit, gg = T) +
  theme(axis.line = element_line(colour = "black"))
EN

回答 1

Stack Overflow用户

发布于 2019-04-15 20:06:38

我建议这个简单的解决方案:

代码语言:javascript
复制
library(visreg)
library(ggplot2)

data(iris)
iris$Species <- factor(iris$Species, labels=c("SETOSA", "VERSICOLOR", "VIRGINICA"))

fit <- lm(Sepal.Length ~ Species, data = iris)
visreg(fit, gg = T)

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55696367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档