You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让R语言barplot的ylab「Hot dogs and buns (HBD) eaten」完整显示?

解决R语言barplot纵轴标签显示不全的问题

你在绘制内森热狗吃大赛(1980-2010)柱状图时,遇到了纵轴标签"Hot dogs and buns (HBD) eaten"无法完整显示的问题,以下是几种实用的解决办法:

方案1:调整绘图边距

基础绘图系统默认的左边距可能不足以容纳较长的纵轴标签,你可以通过par(mar)手动增大左侧边距:

# 调整边距,mar参数顺序为:下、左、上、右,默认是c(5,4,4,2)+0.1
par(mar = c(5, 6, 4, 2) + 0.1)

# 再运行绘图代码
hotdogs <- read.csv("http://datasets.flowingdata.com/hot-dog-contest-winners.csv", 
                    sep=",", header = TRUE)

fill_colors <- ifelse(hotdogs$New.record == 1, "#821122", "#cccccc") # 优化原循环代码

barplot(hotdogs$Dogs.eaten, names.arg = hotdogs$Year, 
        main = "Nathan's Hot Dog Eating Contest Results, 1980 -2010", 
        col=fill_colors, border = NA, space = 0.3, 
        xlab = "Year", ylab = "Hot dogs and buns (HBD) eaten")

方案2:手动拆分纵轴标签

用\n把长标签拆分成多行,让标签自动换行显示,无需调整边距:

hotdogs <- read.csv("http://datasets.flowingdata.com/hot-dog-contest-winners.csv", 
                    sep=",", header = TRUE)

fill_colors <- ifelse(hotdogs$New.record == 1, "#821122", "#cccccc")

barplot(hotdogs$Dogs.eaten, names.arg = hotdogs$Year, 
        main = "Nathan's Hot Dog Eating Contest Results, 1980 -2010", 
        col=fill_colors, border = NA, space = 0.3, 
        xlab = "Year", ylab = "Hot dogs and buns (HBD)\neaten")

方案3:改用ggplot2绘图(替代方案)

ggplot2会自动处理标签的显示空间,无需手动调整边距,代码更简洁:

library(ggplot2)

hotdogs <- read.csv("http://datasets.flowingdata.com/hot-dog-contest-winners.csv", 
                    sep=",", header = TRUE)

ggplot(hotdogs, aes(x = factor(Year), y = Dogs.eaten, fill = factor(New.record))) +
  geom_bar(stat = "identity", color = NA, width = 0.7) +
  scale_fill_manual(values = c("#cccccc", "#821122")) +
  labs(title = "Nathan's Hot Dog Eating Contest Results, 1980 -2010",
       x = "Year", y = "Hot dogs and buns (HBD) eaten") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) # 可选:旋转年份标签避免重叠

额外提示:你原来生成颜色向量的循环可以用ifelse简化,代码更高效易读,上面的示例已经替换了这部分代码。

内容的提问来源于stack exchange,提问作者Tye N

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 21:10:38