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

使用ggplot2绘制条形图出现间距不规则,需实现base R式固定间距

解决ggplot2条形图x轴间距不规则问题

你的问题出在dpi是数值型变量,ggplot2默认会把它当作连续坐标轴处理,条形位置会跟着数值的实际间隔走,所以出现了间距不均的情况。而base R的条形图会自动把数值型x轴当作离散类别绘制,所以每个条形间距均匀。

只需要把dpi转换成因子型变量,就能让ggplot2按离散类别处理,实现均匀间距的条形。下面是两种修改方式:

方式1:提前转换数据类型

library("plyr")
library("ggplot2")

dataTable <- count(player_data, "dpi")
# 将dpi转换为因子,明确每个值是独立类别
dataTable$dpi <- factor(dataTable$dpi)

ggplot(dataTable, aes(x = dpi, y = freq, fill = dpi)) +
    geom_bar(stat = "identity")

方式2:在绘图时直接转换

如果不想修改原始数据,可以在aes()里直接把dpi转成因子:

library("plyr")
library("ggplot2")

dataTable <- count(player_data, "dpi")

ggplot(dataTable, aes(x = factor(dpi), y = freq, fill = factor(dpi))) +
    geom_bar(stat = "identity")

调整后每个dpi值都会对应独立且间距均匀的条形,和你想要的base R绘图效果一致。如果需要调整条形宽窄,可以给geom_bar()加width参数(比如width = 0.8),按需设置即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 22:50:39