我想用R制作图形,我设法用excel制作了图形。它是一个条形图,在x轴上具有种类,在y轴上具有观测值的对数。我目前在R中的数据结构不适合(我认为)制作该图,但我不知道如何(以一种聪明的方式)更改它。
除其他外,我还有一列“ camera_site”(站点1,site2 ..),“ species”(物种,agouti,paca ..),“ count”(1、2 ..),其中包含约50.000个观测值。
我尝试制作一个数据框,其中每个物种的种类分别为“物种”(有18种)和“ log(总观测值)”(see dataframe),但是我只能制作一个点图。
这就是我希望图形显示的样子: desired graph made in excel
答案 0 :(得分:1)
从我的屏幕截图中可以看出,您的数据似乎格式正确。
假设您的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))
当然,您可以根据需要自定义主题。
Groetjes