在ggplot中绘制矢量频率表

时间:2017-03-31 07:14:29

标签: r ggplot2

我创建了一个带有table函数的向量值的频率,并绘制了分布(长度为10)。

x <- c(1,3,5,5,6)

plot(table(x), type = "p", pch = 20, xlim = c(1, 10), axes = FALSE)
axis(side = 1, at = c(seq(0, 10, by = 1)))
axis(side = 2)

如何使用ggplot创建此图?

如果我从table函数创建数据框,则x轴未正确缩放(而x轴上的值是分类的)。

library(ggplot2)

ggplot(as.data.frame(table(x)), aes(x, Freq)) +
  geom_point()

任何想法如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

table(x)将x作为factor返回,您必须将其强制转换为数字才能使比例为连续。

ggplot(as.data.frame(table(x))) + 
    geom_point(aes(x = as.numeric(as.character(x)), 
                   y = Freq)) + 
    scale_x_continuous()

或者你可以让ggplot2为你做计算:

ggplot(as.data.frame(x)) +
    geom_point(aes(x = x), stat = 'count')

enter image description here