如何针对R中的分析变量绘制类别变量的条形图

时间:2018-07-20 15:45:03

标签: r plot ggplot2 bar-chart

我正在努力如何在Excel中轻松实现R的功能:因此,我确定这是非常基本的东西,但我只是不了解R中的等效方法。

本质上,我的数据集中有两个变量:一个具有名称列表的类别变量,以及一个具有与该特定观测值相对应的频率的分析变量。

类似这样的东西:

Name Freq
==== =========
X         100
Y         200

以此类推。

我想绘制一个条形图,其名称在X轴上列出(X,Y等),其高度条对应于频率的相关值。该观测值的变量。

这对于Excel来说是微不足道的;我可以选择相关单元格并创建条形图。 但是,在R中,我似乎无法弄清楚该如何做! R中的条形图似乎仅是单变量的,并不符合我想要的方式。试图绘制两个变量会导致散布图,这不是我想要的。

这里是否缺少一些非常基本的东西,或者R不能执行此任务?

任何指针都会很有帮助。

编辑后添加: 我主要是尝试使用基R的plot函数完成任务。

使用plot(dataset1 $ Name,dataset1 $ Freq)不会生成条形图,而是会生成散点图。

1 个答案:

答案 0 :(得分:1)

首先是数据。

dat <- data.frame(Name = c("X", "Y"), Freq = c(100, 200))

以R为底

barplot(dat$Freq, names.arg = dat$Name)

如果要显示一长串names.arg,也许最好的方法是使用软件包staxlab中的函数plotrix自定义水平轴。这是两个示例图。

一个,轴标签旋转45度。

set.seed(3)

Name <- paste0("Name_", LETTERS[1:10])
dat2 <- data.frame(Name = Name, Freq = sample(100:200, 10))

bp <- barplot(dat2$Freq)
plotrix::staxlab(1, at = bp, labels = dat2$Name, srt = 45)

另一个,标签分布在3行上。

bp <- barplot(dat2$Freq)
plotrix::staxlab(1, at = bp, labels = dat2$Name, nlines = 3)

使用参数col添加颜色。参见help("par")

使用ggplot2

library(ggplot2)

ggplot(dat, aes(Name, Freq)) +
  geom_bar(stat = "identity")

要添加颜色,您需要具有colour(对于条形的轮廓)和fill(对于条形的内部)的美感。