有没有办法在 R 中制作直方图来显示事件发生的年份频率以及该事件的具体细节?

问题描述 投票:0回答:1

我正在尝试创建一个直方图,将特定年份内发生的事件显示为致命或非致命。我可以使用以下方法在基本 R 中创建这些事件的直方图或每年发生的次数:

Confirmed_Unprovoked_Attacks_ALL <- read.csv("/path to csv/.csv")

hist(Confirmed_Unprovoked_Attacks_ALL$year, main = 'Confirmed Unprovoked Attacks', ylab = 'Number of Attacks', xlab = 'Year', breaks = 100, xlim = c(1850,2050))

但是,如果可能的话,我想通过对这些事件进行着色来覆盖由此产生的相同(或相似)直方图,以区分它们是当年的致命事件还是非致命事件。我已为这些条件之一指定了数值,其中“1”代表致命,“2”代表非致命。

.csv 文件中的数据如下所示:

dput((Confirmed_Unprovoked_Attack_ALL))
structure(list(year = c(1876L, 1890L, 1890L, 1894L, 1907L, 1907L, 
1909L, 1916L, 1916L, 1916L, 1922L, 1922L, 1926L, 1930L, 1934L, 
1935L, 1935L, 1936L, 1936L, 1936L, 1937L, 1937L, 1950L, 1950L, 
1951L, 1951L, 1952L, 1953L, 1954L, 1955L, 1955L, 1956L, 1956L, 
1956L, 1956L, 1957L, 1957L, 1959L, 1959L, 1960L, 1960L, 1960L, 
1960L, 1960L, 1961L, 1961L, 1962L, 1962L, 1963L, 1964L, 1964L, 
1964L, 1965L, 1966L, 1966L, 1966L, 1967L, 1968L, 1969L, 1969L, 
1969L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 
1972L, 1972L, 1973L, 1974L, 1974L, 1974L, 1974L, 1974L, 1974L, 
1975L, 1975L, 1975L, 1975L, 1976L, 1976L, 1976L, 1976L, 1976L, 
1977L, 1978L, 1979L, 1979L, 1980L, 1980L, 1980L, 1981L, 1981L, 
1981L, 1982L, 1982L, 1982L, 1982L, 1982L, 1982L, 1982L, 1982L, 
1983L, 1983L, 1984L, 1984L, 1984L, 1984L, 1984L, 1985L, 1985L, 
1985L, 1985L, 1985L, 1986L, 1986L, 1986L, 1987L, 1987L, 1987L, 
1988L, 1988L, 1988L, 1988L, 1989L, 1989L, 1989L, 1989L, 1989L, 
1989L, 1989L, 1989L, 1989L, 1990L, 1990L, 1990L, 1990L, 1990L, 
1990L, 1990L, 1991L, 1991L, 1991L, 1991L, 1991L, 1991L, 1992L, 
1992L, 1992L, 1992L, 1992L, 1992L, 1992L, 1993L, 1993L, 1993L, 
1993L, 1993L, 1993L, 1994L, 1994L, 1994L, 1994L, 1994L, 1994L, 
1994L, 1994L, 1995L, 1995L, 1995L, 1995L, 1995L, 1995L, 1996L, 
1996L, 1996L, 1996L, 1996L, 1996L, 1996L, 1997L, 1997L, 1997L, 
1997L, 1998L, 1998L, 1998L, 1998L, 1998L, 1998L, 1998L, 1999L, 
1999L, 1999L, 1999L, 2000L, 2000L, 2000L, 2000L, 2000L, 2000L, 
2000L, 2000L, 2000L, 2000L, 2000L, 2000L, 2001L, 2001L, 2001L, 
2001L, 2001L, 2002L, 2002L, 2002L, 2002L, 2003L, 2003L, 2003L, 
2004L, 2004L, 2004L, 2004L, 2004L, 2004L, 2004L, 2004L, 2004L, 
2004L, 2005L, 2005L, 2005L, 2005L, 2005L, 2005L, 2005L, 2005L, 
2005L, 2005L, 2005L, 2005L, 2005L, 2006L, 2006L, 2006L, 2006L, 
2006L, 2006L, 2006L, 2007L, 2007L, 2007L, 2007L, 2007L, 2007L, 
2007L, 2007L, 2007L, 2007L, 2008L, 2008L, 2008L, 2008L, 2008L, 
2009L, 2009L, 2009L, 2009L, 2009L, 2009L, 2010L, 2010L, 2010L, 
2010L, 2010L, 2010L, 2010L, 2010L, 2010L, 2010L, 2011L, 2011L, 
2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 
2012L, 2012L, 2012L, 2012L, 2012L, 2012L, 2013L, 2013L, 2013L, 
2014L, 2014L, 2014L, 2014L, 2014L, 2014L, 2014L, 2014L, 2014L, 
2015L, 2015L, 2015L, 2015L, 2015L, 2015L, 2015L, 2015L, 2015L, 
2015L, 2015L, 2015L, 2015L, 2015L, 2016L, 2016L, 2016L, 2016L, 
2016L, 2016L, 2017L, 2017L, 2018L, 2018L, 2018L, 2018L, 2018L, 
2018L, 2018L, 2018L, 2018L, 2018L, 2018L, 2018L, 2019L, 2019L, 
2019L, 2019L, 2019L, 2019L, 2019L, 2019L, 2019L, 2019L, 2020L, 
2020L, 2020L, 2020L, 2020L, 2020L, 2020L, 2020L, 2020L, 2020L, 
2020L, 2020L, 2020L, 2020L, 2020L, 2020L, 2020L, 2021L, 2021L, 
2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 
2021L, 2021L, 2022L, 2022L, 2022L, 2022L, 2022L, 2022L, 2022L, 
2022L, 2023L, 2023L, 2023L, 2023L, 2023L, 2023L, 2023L, NA), 
    outcome = c(1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 2L, 1L, 
    2L, 2L, 1L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 
    2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 
    1L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 
    1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 
    2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 
    1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 
    2L, 2L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 
    1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 
    2L, 2L, 2L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 
    1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 
    1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 
    1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L
    )), class = "data.frame", row.names = c(NA, -402L))

除了基础 R 和 ggplot2 之外没有尝试过任何其他东西

r ggplot2 plot histogram overlay
1个回答
0
投票

如果基础 R 不是必需的,您可以通过在美学定义中指定

ggplot2
并在直方图几何中使用
fill=outcome
来使用
position="stack"
来实现此目的:

输出

library(dplyr)
library(ggplot2)
Confirmed_Unprovoked_Attacks_ALL %>% 
  mutate(outcome = factor(outcome, levels=1:2, labels=c("Fatal", "Non-fatal"))) %>% 
  ggplot(aes(x=year, fill=outcome)) + 
  geom_histogram(position="stack", bins = 100) + 
  scale_x_continuous(limits=c(1850, 2050)) + 
  theme_classic() + 
  theme(legend.position="top") + 
  labs(x="Year", y="Count", fill="")
#> Warning: Removed 1 rows containing non-finite values (`stat_bin()`).
#> Warning: Removed 4 rows containing missing values (`geom_bar()`).

输入

Confirmed_Unprovoked_Attacks_ALL <- structure(list(year = c(1876L, 1890L, 1890L, 1894L, 1907L, 1907L, 
1909L, 1916L, 1916L, 1916L, 1922L, 1922L, 1926L, 1930L, 1934L, 
1935L, 1935L, 1936L, 1936L, 1936L, 1937L, 1937L, 1950L, 1950L, 
1951L, 1951L, 1952L, 1953L, 1954L, 1955L, 1955L, 1956L, 1956L, 
1956L, 1956L, 1957L, 1957L, 1959L, 1959L, 1960L, 1960L, 1960L, 
1960L, 1960L, 1961L, 1961L, 1962L, 1962L, 1963L, 1964L, 1964L, 
1964L, 1965L, 1966L, 1966L, 1966L, 1967L, 1968L, 1969L, 1969L, 
1969L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 1971L, 
1972L, 1972L, 1973L, 1974L, 1974L, 1974L, 1974L, 1974L, 1974L, 
1975L, 1975L, 1975L, 1975L, 1976L, 1976L, 1976L, 1976L, 1976L, 
1977L, 1978L, 1979L, 1979L, 1980L, 1980L, 1980L, 1981L, 1981L, 
1981L, 1982L, 1982L, 1982L, 1982L, 1982L, 1982L, 1982L, 1982L, 
1983L, 1983L, 1984L, 1984L, 1984L, 1984L, 1984L, 1985L, 1985L, 
1985L, 1985L, 1985L, 1986L, 1986L, 1986L, 1987L, 1987L, 1987L, 
1988L, 1988L, 1988L, 1988L, 1989L, 1989L, 1989L, 1989L, 1989L, 
1989L, 1989L, 1989L, 1989L, 1990L, 1990L, 1990L, 1990L, 1990L, 
1990L, 1990L, 1991L, 1991L, 1991L, 1991L, 1991L, 1991L, 1992L, 
1992L, 1992L, 1992L, 1992L, 1992L, 1992L, 1993L, 1993L, 1993L, 
1993L, 1993L, 1993L, 1994L, 1994L, 1994L, 1994L, 1994L, 1994L, 
1994L, 1994L, 1995L, 1995L, 1995L, 1995L, 1995L, 1995L, 1996L, 
1996L, 1996L, 1996L, 1996L, 1996L, 1996L, 1997L, 1997L, 1997L, 
1997L, 1998L, 1998L, 1998L, 1998L, 1998L, 1998L, 1998L, 1999L, 
1999L, 1999L, 1999L, 2000L, 2000L, 2000L, 2000L, 2000L, 2000L, 
2000L, 2000L, 2000L, 2000L, 2000L, 2000L, 2001L, 2001L, 2001L, 
2001L, 2001L, 2002L, 2002L, 2002L, 2002L, 2003L, 2003L, 2003L, 
2004L, 2004L, 2004L, 2004L, 2004L, 2004L, 2004L, 2004L, 2004L, 
2004L, 2005L, 2005L, 2005L, 2005L, 2005L, 2005L, 2005L, 2005L, 
2005L, 2005L, 2005L, 2005L, 2005L, 2006L, 2006L, 2006L, 2006L, 
2006L, 2006L, 2006L, 2007L, 2007L, 2007L, 2007L, 2007L, 2007L, 
2007L, 2007L, 2007L, 2007L, 2008L, 2008L, 2008L, 2008L, 2008L, 
2009L, 2009L, 2009L, 2009L, 2009L, 2009L, 2010L, 2010L, 2010L, 
2010L, 2010L, 2010L, 2010L, 2010L, 2010L, 2010L, 2011L, 2011L, 
2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 
2012L, 2012L, 2012L, 2012L, 2012L, 2012L, 2013L, 2013L, 2013L, 
2014L, 2014L, 2014L, 2014L, 2014L, 2014L, 2014L, 2014L, 2014L, 
2015L, 2015L, 2015L, 2015L, 2015L, 2015L, 2015L, 2015L, 2015L, 
2015L, 2015L, 2015L, 2015L, 2015L, 2016L, 2016L, 2016L, 2016L, 
2016L, 2016L, 2017L, 2017L, 2018L, 2018L, 2018L, 2018L, 2018L, 
2018L, 2018L, 2018L, 2018L, 2018L, 2018L, 2018L, 2019L, 2019L, 
2019L, 2019L, 2019L, 2019L, 2019L, 2019L, 2019L, 2019L, 2020L, 
2020L, 2020L, 2020L, 2020L, 2020L, 2020L, 2020L, 2020L, 2020L, 
2020L, 2020L, 2020L, 2020L, 2020L, 2020L, 2020L, 2021L, 2021L, 
2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 2021L, 
2021L, 2021L, 2022L, 2022L, 2022L, 2022L, 2022L, 2022L, 2022L, 
2022L, 2023L, 2023L, 2023L, 2023L, 2023L, 2023L, 2023L, NA), 
    outcome = c(1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 
    1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 2L, 1L, 
    2L, 2L, 1L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 
    2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 
    1L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 
    1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 
    2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 
    1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 
    2L, 2L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 
    1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 
    2L, 2L, 2L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 
    1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 
    1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
    2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 
    1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L
    )), class = "data.frame", row.names = c(NA, -402L))

© www.soinside.com 2019 - 2024. All rights reserved.