首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用R生成直方图的问题

用R生成直方图的问题
EN

Stack Overflow用户
提问于 2022-09-27 10:28:54
回答 1查看 26关注 0票数 0

我正试着用这个数据做一个直方图。这段代码的主要问题是我没有得到一个直方图:它看起来更像一个列图。如何修正我的代码以获得直方图?

代码语言:javascript
复制
library(dplyr)
library(ggplot2)

midf <- data.frame("x" = c(rep(1975,1), rep(1985,6), rep(1995,17), rep(2005,24), rep(2015,1)))
g1 <- ggplot(midf)
g1 <- g1 + aes ( x = x)
g1 <- g1 + geom_histogram () + geom_histogram(bins=5, position = 'identity', alpha = 0.8)
g1 <- g1 + xlab ("Años de Antiguedad")
g1 <- g1 + ylab ("Cantidad de Objetos")
g1 <- g1 + ggtitle ("Trabajo de Aplicación", subtitle = "Antiguedad de Objetos Encontrados en Océano")
g1 <- g1 + coord_cartesian(ylim=c(-2,26), xlim=c(1970,2020))
g1
EN

回答 1

Stack Overflow用户

发布于 2022-09-27 10:49:26

我已经整理了一些代码--这里有一个冗余的geom_histogram(),所有的标签定义都可以放在一个labs()函数中。

这确实产生了一个直方图-与你的预期有什么不同?你想每年有一个酒吧吗?如果是这样的话,bins=5可能会更改为50,因为您已经为xlim设置了50年的范围。

总的来说,直方图并不是显示像这样的离散数据的好方法--你能给我们一个你想用你的情节显示什么的想法吗?

代码语言:javascript
复制
library(dplyr)
library(ggplot2)

midf <- data.frame("x" = c(rep(1975,1), rep(1985,6), rep(1995,17), rep(2005,24), rep(2015,1)))

g1 <- ggplot(midf, aes(x = x)) +
  # geom_histogram () +
  geom_histogram(bins=5, position = 'identity', alpha = 0.8) +
  labs(x = "Años de Antiguedad", 
       y = "Cantidad de Objetos",
       title = "Trabajo de Aplicación", 
       subtitle = "Antiguedad de Objetos Encontrados en Océano") +
  coord_cartesian(ylim=c(-2,26), xlim=c(1970,2020))

g1

下面是一种用酒吧作画的方法:

代码语言:javascript
复制
g1 <- ggplot(midf, aes(x = factor(x), y=..count..)) +
  geom_bar(alpha = 0.8, width = 0.8) +
  labs(x = "Años de Antiguedad", 
       y = "Cantidad de Objetos",
       title = "Trabajo de Aplicación", 
       subtitle = "Antiguedad de Objetos Encontrados en Océano")

可以修改width行中的geom_bar(),以平衡棒材的厚度和间距。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73866102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档