我有以下代碼生成以下結果:
years <- seq(1930, 2020, by = 10)
length(years)
years
labels <- paste(1 years[-length(years)], years[-1], sep = "-")
length(labels)
labels
SP500 %>% mutate(decade = cut(SP500$Year,seq(1930,2020,by=10), labels = labels)) %>%
group_by(decade) %>% summarise(return = mean(`Annual\n% Change`))
# A tibble: 10 × 2
decade return
<fct> <dbl>
1 1931-1940 0.014
2 1941-1950 0.077
3 1951-1960 0.124
4 1961-1970 0.056
5 1971-1980 0.058
6 1981-1990 0.098
7 1991-2000 0.157
8 2001-2010 0.018
9 2011-2020 0.121
10 NA 0.04
我的問題是如何將此結果放入條形圖或折線圖中?在過去的幾個小時里,我一直在嘗試這樣做,但我不斷收到錯誤,盡管我覺得答案很簡單,似乎我只是看不到它
years <- seq(1930, 2020, by = 10)
length(years)
labels <- paste(1 years[-length(years)], years[-1], sep = "-")
length(labels)
SP500 %>% mutate(decade = cut(SP500$Year,seq(1930,2020,by=10), labels = labels)) %>%
group_by(decade) %>% summarise(return = mean(`Annual\n% Change`)) %>%
ggplot(SP500, aes(x = decade, y = return))
geom_col()
錯誤ggplot():!應使用aes()或創建映射aes_()。
SP500 %>% ggplot(
ss <- SP500 %>% mutate(decade = cut(SP500$Year,seq(1930,2020,by=10))) %>%
group_by(decade) %>% summarise(return = mean(`Annual\n% Change`)), aes_(x=ss[,1], y= ss[,2])) geom_line()
提前謝謝了
uj5u.com熱心網友回復:
您將資料操作的結果通過管道傳遞給 ggplot,但還將資料框的名稱作為第一個引數傳遞給 ggplot。
記住做
data_frame %>% ggplot(aes(x, y))
和做的一樣
ggplot(data = data_frame, mapping = aes(x, y))
但是做
data_frame %>% ggplot(data_frame, aes(x, y))
和做的一樣
ggplot(data = data_frame, mapping = data_frame, aes(x, y))
當然,你會得到一個錯誤,因為你不能將資料框傳遞給mapping引數。
所以你可以做
SP500 %>%
mutate(decade = cut(SP500$Year,seq(1930,2020,by=10), labels = labels)) %>%
group_by(decade) %>%
summarise(return = mean(`Annual\n% Change`)) %>%
ggplot(aes(x = decade, y = return))
geom_col()
或者
SP500 <- SP500 %>%
mutate(decade = cut(SP500$Year,seq(1930,2020,by=10), labels = labels)) %>%
group_by(decade) %>%
summarise(return = mean(`Annual\n% Change`))
ggplot(SP500, aes(x = decade, y = return))
geom_col()
兩者都導致:

上圖是使用以下代碼制作的,其中包含從您的問題中獲取的資料。如果將此代碼塊復制并粘貼到 R 控制臺中,它將產生相同的圖:
SP500 <- structure(list(decade = structure(1:9, .Label = c("1931-1940",
"1941-1950", "1951-1960", "1961-1970", "1971-1980", "1981-1990",
"1991-2000", "2001-2010", "2011-2020"), class = "factor"), return = c(0.014,
0.077, 0.124, 0.056, 0.058, 0.098, 0.157, 0.018, 0.121)), row.names = c(NA,
-9L), class = c("tbl_df", "tbl", "data.frame"))
library(ggplot2)
ggplot(SP500, aes(decade, return)) geom_col()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/457866.html
上一篇:ImageMagick可以在WindowsPowerShell上運行,但不能使用go運行
下一篇:顏色編碼資料點
