(4A)單元摘要: 使用漫畫人物資料集來
dplyr
ggplot2
plotly
載入套件
name id align eye
Length:23272 Length:23272 Length:23272 Length:23272
Class :character Class :character Class :character Class :character
Mode :character Mode :character Mode :character Mode :character
hair gender gsm alive
Length:23272 Length:23272 Length:23272 Length:23272
Class :character Class :character Class :character Class :character
Mode :character Mode :character Mode :character Mode :character
appearances first_appear publisher
Min. : 1 Length:23272 Length:23272
1st Qu.: 1 Class :character Class :character
Median : 4 Mode :character Mode :character
Mean : 19
3rd Qu.: 10
Max. :4043
NA's :1451
name id align eye hair gender
0 5783 3413 13395 6538 979
gsm alive appearances first_appear publisher
23118 6 1451 884 0
[1] 0 1 2 3 4 5 6 7 8 9 10 11 12 13 39
[16] 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
[31] 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
[46] 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
[61] 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
[76] 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949
[91] 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964
[106] 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979
[121] 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994
[136] 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009
[151] 2010 2011 2012 2013
a = a %>% mutate(
year = as.numeric(str_extract(first_appear,"\\d+")) %>% {case_when(
. < 20 ~ . + 2000,
. < 100 ~ . + 1900,
TRUE ~ .
) } )
a %>% top_n(50, appearances) %>%
ggplot(aes(x=year,y=appearances,color=publisher,shape=gender,label=name)) +
geom_point(size=3,alpha=0.5) -> p
ggplotly(p)