首页 > 解决方案 > 更改数据结构以在 ggplot 中创建正确的条形图

问题描述

我想在 R 中制作一个图表,我设法在 excel 中制作了它。它是一个条形图,x 轴为物种,y 轴为观测的对数数。我当前在 R 中的数据结构不适合(我认为)制作这张图,但我不知道如何改变它(以一种聪明的方式)。

我(除其他外)有一列“camera_site”(站点 1,site2..),“species”(agouti,paca..),“count”(1, 2..),大约有 50.000 个观察值。

我尝试制作一个数据框,其中包含“物种”列(有 18 个物种)和每个物种的“日志(总观察值)”列(请参阅数据框)但是我只能制作一个点图。

这就是我希望图表的外观: 在 excel 中制作的所需图表

标签: rexcelggplot2data-structures

解决方案


从您的屏幕截图中可以看出,您的数据格式似乎正确。假设你的 data.frame 被调用,你需要得到这样一个图的最少代码量如下df

ggplot(df, aes(VRM_species, log_obs_count_vrm)) +
  geom_col()

许多人直观地尝试geom_bar(),但geom_col()等效于geom_bar(stat = "identity"),如果您已经预先计算了观察结果并且不需要 ggplot 为您进行计数,您将使用它。但是您可能可以通过添加一些内容来更好地装饰情节:

ggplot(df, aes(VRM_species, log_obs_count_vrm)) +
  geom_col() +
  scale_x_discrete(name = "Species") +
  scale_y_continuous(name = expression("Log"[10]*" Observations"),
                     expand = c(0,0,0.1,0)) +
  theme(axis.text.x = element_text(angle = 90))

当然,您可以根据需要自定义主题。

格罗耶斯


推荐阅读