R 上具有两个不同变量的条形图

Myr*_*Myr 4 r graph bar-chart

想要在同一个条形图上绘制以下数据。这是一个长度频率条形图,显示了人口中男性和女性的长度类别:

我对此很陌生,我不知道如何将我的数据放在这里,但这里有一个例子:

Lengthclass Both    Males   Females
60  7   5   2
70  10  5   5
80  11  6   5
90  4   2   2
100 3   3   0
110 3   0   3
120 1   1   0
130 0   0   0
140 1   0   1
150 2   0   2
Run Code Online (Sandbox Code Playgroud)

如果我使用此代码: {barplot()}它不会在同一图上提供所有三个变量。

我需要一个看起来像这样但在 R 上的图表。 在此输入图像描述

谢谢你:)

S. *_*ica 5

您的条形图被称为“分组条形图”(与“堆叠条形图”相反)。

将您的数据排列在 a 中matrixbeside=TRUE在对 的调用中使用barplot()。这是使用内置数据集的示例:

> VADeaths
      Rural Male Rural Female Urban Male Urban Female
50-54       11.7          8.7       15.4          8.4
55-59       18.1         11.7       24.3         13.6
60-64       26.9         20.3       37.0         19.3
65-69       41.0         30.9       54.6         35.1
70-74       66.0         54.3       71.1         50.0
> barplot(VADeaths,beside=TRUE)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


Luc*_*lia 5

classes <- levels(cut(60:100, breaks = c(60,70,80,90,100),
                      right =FALSE))

my.df <- data.frame(lengthclass = classes,
                     both = c(7,10,11,4),
                     male = c(5,5,6,2),
                     female = c(2,5,5,2))

barplot(t(as.matrix(my.df[, 2:4])), 
        beside = TRUE,
        names.arg = my.df$lengthclass,
        legend.text = TRUE,
        ylim = c(0,12),
        ylab = "number of individuals",
        xlab = "Length class (cm)")
Run Code Online (Sandbox Code Playgroud)