【问题标题】:How to draw a basic histogram with X and Y axis in R如何在R中绘制带有X和Y轴的基本直方图
【发布时间】:2015-10-16 20:45:57
【问题描述】:

我想制作一个包含两个向量的简单直方图,

values <- c(1,2,3,4,5,6,7,8)
freq <- c(4,6,4,4,3,2,1,1)
df <- data.frame(values,freq)

现在data.farame df 包含以下值:

values freq
 1    4
 2    6
 3    4
 4    4
 5    3
 6    2
 7    1
 8    1

现在我想绘制一个简单的直方图,其中values 在 x 轴上,freq 在 y 轴上。我正在尝试使用 hist 函数,但我无法给出两个变量。如何根据这些数据制作简单的直方图?

【问题讨论】:

    标签: r dataframe histogram


    【解决方案1】:

    既然你已经有了频率,你真正想要的是一个条形图:

    barplot(df$freq,names.arg=df$values)
    

    如果你已经决定使用hist,你应该这样做:

    hist(rep(df$values,df$freq))
    

    请阅读?barplot?hist 了解更多绘图选项。


    另外,因为我有点狂热,如果你使用data.table,我认为代码看起来更干净:

    library(data.table)
    setDT(df) #convert df to a data.table by reference
    df[,barplot(freq,names.arg=values)]
    

    df[,hist(rep(values,freq))]
    

    【讨论】:

      【解决方案2】:

      使用ggplot2:

      library(ggplot2)
      ggplot(df, aes(x = values, y = freq)) +
             geom_bar(stat="identity")
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-10-07
        • 2012-06-08
        • 1970-01-01
        • 1970-01-01
        • 2014-05-09
        • 1970-01-01
        • 2013-02-07
        • 2020-06-11
        相关资源
        最近更新 更多