对基于离散数据的 x 轴设置限制

Setting limits to a discrete data based x-axis

我正在努力制作图表,使用 ggplot2。 下面,你可以看到我得到的输出和相关代码:

library(ggplot2)

## Defining Dataframe
Dati <- data.frame(Correction = c("0%", "+5%", "+10%", "+15%"), 
                 Vix = c(65700, 48000, 45500, 37800))

## Create factors
Dati$Correction <- as.factor(Dati$Correction)
Dati$Correction <- factor(Dati$Correction, levels = c("0%", "+5%", "+10%", "+15%"))



## Defining graph
Graph <- ggplot(data=Dati, aes(x=Correction, y=Vix)) + geom_point(color = "#e60000", shape = 1, size = 3.5) + 
geom_smooth(aes(as.numeric(Correction), Vix), level=0.75, span = 1, color = "#e60000", method=lm) + 
xlab("xlab") + ylab("y lab") + labs(color='') +
guides(color = FALSE, size = FALSE)
Graph

我想要设置限制,也许用 scale_x_discrete() 但我没有成功,以便删除行前后的外部 space:

有什么办法吗?我也想这样做,以防 x 轴出现文本值。

提前感谢您最终的帮助。

您应该在 scale_x_discrete 函数中设置一个 expand。这将改变您的离散 x-axis 的限制。您可以将此更改为您想要的。您可以使用此代码:

 ## Defining graph
 Graph <- ggplot(data=Dati, aes(x=Correction, y=Vix)) + geom_point(color = "#e60000", shape = 1, size = 3.5) + 
   geom_smooth(aes(as.numeric(Correction), Vix), level=0.75, span = 1, color = "#e60000", method=lm) + 
   xlab("xlab") + ylab("y lab") + labs(color='') +
   guides(color = FALSE, size = FALSE) + 
   scale_x_discrete(expand=c(0.05, 0))
 Graph

输出:

x轴是连续变量,所以需要用到scale_x_continuous()。要删除比例上的填充,请设置 scale_x_continuous(expand = c(0, 0))