ggplot X轴标签超出边界被截断,如何调整绘图区域使其完整显示?
解决ggplot X轴标签被截断的方法
以下是几种实用的调整方案,让右侧X轴标签完整显示:
1. 调整绘图边距
在theme()中添加plot.margin参数,给右侧预留额外空间,同时自然缩小绘图区域:
ggplot(test_df, aes(x = Year, y = mydata )) + geom_line() + labs(y = "S&P 500 EPS / Nominal GDP Normalized") + theme_bw() + theme(axis.title.x = element_text(size = 18, face = "bold"), axis.title.y = element_text(size = 18, face = "bold"), axis.text.x = element_text(size = 14), axis.text.y = element_text(size = 14), # 边距顺序:上、右、下、左,单位可选lines或cm plot.margin = margin(1, 2, 1, 1, "lines") )
2. 扩展X轴范围
稍微扩大X轴的上限值,给标签留出显示空间:
ggplot(test_df, aes(x = Year, y = mydata )) + geom_line() + labs(y = "S&P 500 EPS / Nominal GDP Normalized") + theme_bw() + theme(axis.title.x = element_text(size = 18, face = "bold"), axis.title.y = element_text(size = 18, face = "bold"), axis.text.x = element_text(size = 14), axis.text.y = element_text(size = 14) ) + xlim(1929, 2022) # 将X轴上限从2021调整为2022
3. 关闭绘图区域裁剪
通过coord_cartesian关闭绘图区域的裁剪限制,允许标签超出绘图边界显示:
ggplot(test_df, aes(x = Year, y = mydata )) + geom_line() + labs(y = "S&P 500 EPS / Nominal GDP Normalized") + theme_bw() + theme(axis.title.x = element_text(size = 18, face = "bold"), axis.title.y = element_text(size = 18, face = "bold"), axis.text.x = element_text(size = 14), axis.text.y = element_text(size = 14) ) + coord_cartesian(xlim = c(1929, 2021), clip = "off")
内容的提问来源于stack exchange,提问作者Thomas Philips
相关产品推荐
相关产品推荐

