如何从R中的计数数据绘制条形图?

时间:2018-02-02 14:40:38

标签: r

我有一个数据框'x'

X

我想要像这样的条形图 enter image description here

我试过

barplot(x$Value, names.arg = x$'Categorical variable')
ggplot(as.data.frame(x$Value), aes(x$'Categorical variable')

似乎没有什么工作正常。在条形图中,所有轴标签(频率值)都不同。 ggplot将所有条形填充到100%。

3 个答案:

答案 0 :(得分:2)

您可以尝试使用geom_bar()进行绘图。以下代码生成您要查找的内容。

df = data.frame(X = c("A","B C","D"),Y = c(23,12,43))
ggplot(df,aes(x=X,y=Y)) + geom_bar(stat='identity') + coord_flip()

答案 1 :(得分:1)

您必须在stat = "identity"中使用geom_bar()

dat <- data.frame("cat" = c("A", "BC", "D"),
                  "val" = c(23, 12, 43))
ggplot(dat, aes(as.factor(cat), val)) +
  geom_bar(stat = "identity") +
coord_flip()

答案 2 :(得分:1)

阅读ggplot文档很有帮助。 ggplot需要一些内容,包括dataaes()。你有那两个声明,但你没有正确使用它们。

library(ggplot2)
set.seed(256)

dat <- 
  data.frame(variable = c("a", "b", "c"), 
             value = rnorm(3, 10))

dat %>%
  ggplot(aes(x = variable, y = value)) +
  geom_bar(stat = "identity", fill = "blue") +
  coord_flip()

在这里,我将dat传递给ggplot作为data参数并使用xy变量的名称而不是传递data$...geom_bar()。接下来,我添加stat = "identity"语句,我必须使用ggplot告诉value使用var input = document.getElementById("ipone"); var paragraph = document.getElementById("test"); input.addEventListener("input", function() { var value = input.value; paragraph.innerText = value; });中的实际值,而不是尝试绘制数字的计数