在R中创建具有多个组的条形图

时间:2020-09-09 21:02:30

标签: r bar-chart

我有一个包含几种病原体的数据集。我想创建一个条形图,在x轴上列出3条“负”,“正”和“ NA”(在数据集中列出)的病原体,并在y轴上计数。我可以使用以下代码成功创建单个病原体的条形图,但是我无法弄清楚如何将所有病原体放在一张图中。帮助将不胜感激。

对于单一病原体:

countST=table(NetJoint$`sT-ETEC`)  
barplot(countST)

我尝试多种病原体:

ETECcounts=table(NetJoint$`LT-ETEC`, NetJoint$`sT-ETEC`)  
barplot(ETECcounts, main="Pathogen Distribution",  
        xlab="Pathogen", beside=TRUE) 

^^此代码在x轴上列出了“ NA”,“阴性”和“阳性”,而不是病原体。

1 个答案:

答案 0 :(得分:1)

如果您共享一些数据,可能会对我们有帮助。但是我认为解决方案是这样的:

# create an example dataframe
NetJoint = data.frame(
  'LT-ETEC' = c('Positive', 'Positive', 'Negative', 'Positive', NA, 'Positive', NA),
  'sT-ETEC' = c(NA, 'Negative', 'Negative', NA, 'Positive', NA, 'Positive')
)
# create a table for each variable of the dataframe
ETECcounts = sapply(NetJoint, table, useNA = 'always')
# plot base layer
barplot(ETECcounts, main = 'Pathogen Distribution',  
        xlab = 'Pathogen', beside = TRUE, col = c('orange', 'darkgreen', 'grey'))
# add legend layer
legend('topright', fill = c('orange', 'darkgreen', 'grey'),
       legend = c('Positive', 'Negative', 'NA'))

以下是输出:

enter image description here

让我知道这是否是您想要的。

相关问题