R语言绘制直方图无显示问题求助:坐标轴与数值转换需求
解决R语言直方图无显示问题:正确展示年份对应流量数据
看起来你搞混了hist()函数的适用场景啦!hist()是用来展示连续数据的频数分布的,但你的需求是把年份(1-5)作为x轴,对应每个年份的流量(转成百万级)作为y轴,这其实更适合用柱状图(barplot())来实现,而不是直方图——这也是你修改后无显示的核心原因。
下面是具体的解决步骤和代码:
步骤1:预处理数据
先把原始的大流量值转换成百万级,让y轴更易读:
# 原始数据 x <- c(25130250, 26054121, 28074512, 36025050, 35013655) y <- 1:5 # 年份 # 将x转换为百万级数值 x_million <- x / 1000000
步骤2:用barplot实现需求
用barplot()来展示每个年份对应的流量值,完美匹配你的需求:
barplot( height = x_million, # y轴的流量值(百万级) names.arg = y, # x轴的年份标签 main = "Traffic Per Year", xlab = "Year", # 修改x轴标签为年份,更清晰 ylab = "Traffic (Millions)", # y轴标注为百万级流量 col = "#4287f5" # 可选:给柱子加个好看的颜色 )
为什么之前用hist()会无显示?
hist()的逻辑是对输入的数据进行分组统计频数,但你的y是1-5这5个离散值,当你错误地把它作为hist()的输入时,函数会尝试统计这些值的出现次数——每个值只出现一次,所以只会生成一个极窄的柱子(甚至因为分组设置问题看不到),自然就出现了“无显示”的情况。
如果非要用hist()(其实完全没必要,因为场景不匹配),你需要把每个年份的流量值作为单独的组,但这完全不符合直方图的设计初衷,反而会让图表失去意义。所以优先选择barplot()才是正确的做法哦!
内容的提问来源于stack exchange,提问作者Ibroshine
相关产品推荐
相关产品推荐

