R ggplot 只显示一个条

R ggplot only shows one bar

我刚开始使用 R,如果我的问题太基础,请见谅, 我有一个 excel sheet ,这是 link: https://file.io/LfsAOdDCVnFq

我正在尝试绘制一个简单的条形图,如下所示:

X = 我希望它是我的示例名称,文件中名为 OTU ID 的列 Y = 我希望它是每个样本的变量总和,文件中名为 Sum ZOTUs 的列

到目前为止,我已经安装并调用了 ggplot2 库并尝试绘制我的数据框,但是当我这样做时它只显示一个条,我不知道哪里出了问题

install.packages("readxl")
install.packages("ggplot2")

library(readxl)
library(ggplot2)

ZOTU <- read_excel(file.choose())

ggplot(data=ZOTU, aes(x="OTU ID")) + geom_bar ()

它显​​示了下面的情节:

谁能帮忙解决这个问题? 谢谢

第一个

您的问题可以更好地表述,请阅读 how to ask a good question and how to create a minimal example 以了解可行问题的基础知识。

在 R 中,您有一个非常好的工具来创建可重现的示例:reprex package

此外,我不会从 Whosebug 的随机问题中给定 link 下载任何内容,你也不应该。

尝试

在您的计算机上执行这段代码,看看它是否有助于您理解 ggplot 的工作原理:

library(ggplot2) # load ggplot
mpg # let's look at a 'mpg' data included in the ggplot package

# Now, a simple bar plot
ggplot(mpg, aes(x = fl)) +
  geom_bar()

我们使用 mpg 数据作为图形的数据,并将 x-axis 设置为该数据的 fl 列。最后,我们向图中“添加”条形图。 默认情况下,条形图将绘制您传递的列中存在的不同值的计数 x-axis。

评论后

经过我们在评论区的讨论,也许这就是你想要的。 如果您在一列中有 x-axis 的名称(离散变量),而另一列包含您想要为每个名称求和并在 y 中绘制的变量,请尝试:

ggplot(data = mpg) +
  geom_col(aes(x = manufacturer, y = hwy))

您可以使用代码

获取值
library(tidyverse)
 mpg %>% group_by(manufacturer) %>% summarize(total = sum(hwy))

因此对于您的情况,如果您在 x-axis 中有一列包含您想要的名称,而另一列包含您希望代码为每个名称求和的值,请使用

ggplot(data = your_data_frame) +
  geom_col(aes(x = your_names, y = values_to_be_summed_for_each_name))

我在 excel sheet 屏幕截图中看不到你上传的图片。

我的猜测是使用引号而不是反引号。试试 运行 这个代码:

ggplot(data = ZOTU, aes(x = `OTU ID`)) + geom_bar()