温馨提示:本文翻译自stackoverflow.com,查看原文请点击:r - Eliminate X-Axis Gaps in ggplot Line Chart
dataframe ggplot2 linechart r

r - 消除ggplot折线图中的X轴间隙

发布于 2020-08-07 04:47:31

当我使用ggplot创建折线图时,x轴的两侧会出现两个间隙,如下所示:

在此处输入图片说明

如何防止这种情况,使直线在x轴的两个边缘开始和结束,而不是仅仅在之前/之后?

这是我到目前为止的代码:

germany_yields <- read.csv(file = "Germany 10-Year Yield Weekly (2007-2020).csv", stringsAsFactors = F)
italy_yields <- read.csv(file = "Italy 10-Year Yield Weekly (2007-2020).csv", stringsAsFactors = F)

germany_yields <- germany_yields[, -(3:6)]
italy_yields <- italy_yields[, -(3:6)]

colnames(germany_yields)[1] <- "Date"
colnames(germany_yields)[2] <- "Germany.Yield"
colnames(italy_yields)[1] <- "Date"
colnames(italy_yields)[2] <- "Italy.Yield"

combined <- join(germany_yields, italy_yields, by = "Date")
combined <- na.omit(combined)
combined$Date <- as.Date(combined$Date,format = "%B %d, %Y")
combined["Spread"] <- combined$Italy.Yield - combined$Germany.Yield

ggplot(data=combined, aes(x = Date, y = Spread)) + geom_line()

查看更多

提问者
Ryan Walter
被浏览
6
chemdork123 2020-04-28 02:24

您可以使用expand=任何scale_ggplot命令中参数limits在比例尺和绘图区域边缘之间调整缓冲区

例:

df <- data.frame(x=1:100, y=rnorm(100))
ggplot(df, aes(x,y)) + geom_line() + xlim(0,100)

您仍然在x轴上有边:

在此处输入图片说明

但要添加expand参数以指定要扩展到的边缘以外的范围limits请注意,该参数需要两个值,因此您可以指定超出上限和下限的范围:

ggplot(df, aes(x,y)) + geom_line() + scale_x_continuous(limits=c(0,100), expand=c(0,0))

在此处输入图片说明