【发布时间】:2018-06-15 17:33:43
【问题描述】:
我想在 R 中渲染温度时间序列的范围图或散点图。基本上,对于每个区域,我需要分别计算前 10 年和最后 10 年的温度平均值和降水总量;然后将参考年份的 gdp_percapita(假设是 1995 年的 gdp_percapita)与前 10 年和后 10 年的温度平均值和降水总量绘制一个范围图。
可重复的数据:
这是用实际温度时间序列模拟的可重现数据:
dat= data.frame(index = rep(c('dex111', 'dex112', 'dex113','dex114','dex115'), each = 30), year =1980:2009,
region= rep(c('Berlin','Stuttgart','Böblingen','Wartburgkreis','Eisenach'), each=30),
gdp_percapita=rep(sample.int(40, 30), 5),gva_agr_perworker=rep(sample.int(45, 30), 5),
temperature=rep(sample.int(50, 30), 5), precipitation=rep(sample.int(60, 30), 5))
更新: 这是我到目前为止所做的:
library(tidyverse)
func <- dat %>%
group_by(temperature, precipitation) %>%
summarize_all(funs(mean, sum))
似乎我错了前十年和后十年的平均温度和总降水量。任何更正。
func %>%
gather(year, region, temperature, precipitation, gdp_percapita) %>%
separate(col, into = c("Measurement", "stat")) %>%
arrange(region) %>%
mutate_at(vars(col, Measurement), fct_inorder) %>%
spread(col, val)
但是上面的代码不太适合制作情节,不知道我的代码出了什么问题?有什么想法吗?
我知道ggplot2 可以为这些数据渲染预期的范围图,但我尝试重塑数据以制作图是不正确的。有什么办法可以在 R 中制作这个情节?我怎样才能在ggplot2 中实现这一点?有什么想法吗?
更新:
并不是说我为 x 轴上的所有区域选择了 2000 的 gdp_percapita,而所有区域沿 y 轴的周期性平均温差和降水总和差异。
想要的情节:
这是所需的温度和降水范围图:
如何以最少的代码高效地完成我想要的输出?有人能指出我正确的方向吗?
【问题讨论】:
-
该范围是具有两种不同方法的总范围,还是两个不同的范围?
-
@CalumYou 我认为有两种不同的方式,但我也想看看如果使用两个不同的范围会发生什么。谢谢
-
到目前为止你写了什么代码?
-
您似乎有几个问题合而为一,第一个问题是如何重塑您的数据,以便您可以在一个轴上获得 2000 GDP,在另一个轴上获得降水/温度。有很多 SO 帖子可以帮助您从宽数据转向长数据:here's one 有 5 个不同的可靠答案
-
我选择平均值是因为我没有看到您选择的是 1996 年的 GDP,您可以轻松更改它。您只需要一个 GDP 值来绘制该点。您预计多个 GDP 会如何?更多点和更多颜色?单独的面板?请尽可能将自己限制在一个简洁的问题上。