日期箱内变量计数的堆积条形图

Posted

技术标签:

【中文标题】日期箱内变量计数的堆积条形图【英文标题】:Stacked Bar Graph of Count of Variables within date bins 【发布时间】:2018-08-15 22:52:13 【问题描述】:

使用 R,我正在尝试按日期制作不同结算类型计数的简单堆叠条形图。我有 3 种计算日期的方法。下面是我的数据库示例

ID Settlement Start End Mid 01 Urban 200 400 300 02 Rural 450 850 650 03 Military 1300 1400 1350 04 Castle 2 1000 501

到目前为止我有

count(ratData, vars = "结算")

返回

Settlement freq 1 78 2 Castle 25 3 Cave 3 4 Fortification 5 5 Hill Fort 2 6 Industrial (quarry) 1 7 Manor 2 8 Military 4 9 Military camp 1 10 Military Camp 3 11 Military site 1 12 Mining 1 13 Monastic 15 14 Monastic/Rural? 1 15 Port 5 16 River-site 2 17 Roman fort 1 18 Roman Fort 1 19 Roman settlement 3 20 Rural 22 21 Settlement 2 22 urban 1 23 Urban 123 24 Villa 4 25 Wic 13

然后绘制

ggplot(v, aes(x=Settlement, y=freq)) + geom_bar(stat='identity', fill='lightblue', color='black')

但是,这会在 x 轴上显示定居类型,而不是堆叠定居类型。这是缺少日期数据。我想将它们从 1-1500 分到 100 年的箱子中,并制作每个箱子的定居类型堆积条形图,以说明随着时间的推移存在。

【问题讨论】:

我们需要更多信息。你想用来装箱的变量是什么?开始?结尾?中? Mid 最合适 【参考方案1】:

这应该可以解决问题。 cut 函数在这种情况下非常有用,在这种情况下,您需要根据某个连续变量的范围创建分类变量。我已经选择了Tidyverse 路线,但也有基本的 R 选项。

library(dplyr)
library(ggplot2)

# Some dummy data that resembles your problem
s <- data.frame(ID = 1:100,
                Settlement = c(rep('Urban', 50), rep('Rural', 20), rep('Military', 10), rep('Castle', 20)),
                Start = signif(rnorm(100, 500, 100), 2),
                End = signif(rnorm(100, 1000, 100), 2))
s$Mid <- s$Start + ((s$End - s$Start) / 2)

# Find the range of the mid variable to decide on cut locations
r <- range(s$Mid)

# Make a new factor variable based year bins - you will need to change to match your actual data
s$group <- cut(s$Mid, 5, labels = c('575-640', '641-705', '706-770', '771-835', '836-900'))

# Frequency count per factor level
grouped <- s %>%
  group_by(group) %>%
  count(Settlement)

# You'll need to clean up axis labels, etc.
ggplot(grouped, aes(x = group, y = n, fill = Settlement)) +
  geom_bar(stat = 'identity')

【讨论】:

以上是关于日期箱内变量计数的堆积条形图的主要内容,如果未能解决你的问题,请参考以下文章

绘制水平堆积条形图不适用于日期中的 x 轴

如何使熊猫分类堆积条形图比例为 100%

spss如何删除堆积条形图中的某块数据

为多个变量制作堆积条形图 - R 中的 ggplot2

一个定量变量和一个分类变量的堆积条形图

具有 50 多个创建的虚拟变量的堆积条形图(百分比)? [关闭]