【问题标题】:Plot frequency table of vector in ggplot在ggplot中绘制向量的频率表
【发布时间】:2017-08-25 08:54:05
【问题描述】:

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

有什么办法解决这个问题吗?

【问题讨论】:

  • 可以在aes中使用as.numeric(x)而不是x,刻度会连续。

标签: r ggplot2


【解决方案1】:

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')

【讨论】:

    猜你喜欢
    • 2013-10-02
    • 1970-01-01
    • 2022-08-09
    • 1970-01-01
    • 2011-04-02
    • 1970-01-01
    • 2017-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多