我正在使用该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"))
.
如何重现问题:
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 轴的外观:
library(visreg)
library(ggplot2)
data(iris)
fit <- lm(Sepal.Length ~ Species, data = iris)
visreg(fit, gg = T) +
theme(axis.line = element_line(colour = "black"))