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()
我刚开始使用 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()