ggplot2 中类似栅格的时间序列图
Raster-like timeseries graph in ggplot2
我正在尝试使用 ggplot2
.
重新创建一张类似此处的图表
如果我使用 coord_equal 弄乱点的大小和形状,我可以非常接近,但是...
示例数据和代码
library(ggplot2)
df <- data.frame()
Years <- 1990:2020
for(i in 1:length(Years)) {
Year <- Years[i]
week <-1:52
value <- sort(round(rnorm(52, 50, 30), 0))
df.small <- data.frame(Year = Year, week = week, value = value)
df <- bind_rows(df, df.small)
}
ggplot(df, aes(week, Year, color = value)) +
geom_point(shape = 15, size = 2.7) +
scale_color_gradientn(colours = rainbow(10)) +
coord_equal()
问题是,
我想用我的真实数据 "stretch" 图表,这样我可以更清楚地看到它(我的时间序列更短),当我不使用 coord_equal 时,方块不会填充绘图区:
ggplot(df, aes(week, Year, color = value)) +
geom_point(shape = 15, size = 2.7) +
scale_color_gradientn(colours = rainbow(10))
这就像使用 geom_raster
geom 一样简单吗?
ggplot(df, aes(week, Year)) +
geom_raster(aes(fill = value)) +
scale_fill_gradientn(colours = rainbow(10)) +
coord_equal()
我正在尝试使用 ggplot2
.
如果我使用 coord_equal 弄乱点的大小和形状,我可以非常接近,但是...
示例数据和代码library(ggplot2)
df <- data.frame()
Years <- 1990:2020
for(i in 1:length(Years)) {
Year <- Years[i]
week <-1:52
value <- sort(round(rnorm(52, 50, 30), 0))
df.small <- data.frame(Year = Year, week = week, value = value)
df <- bind_rows(df, df.small)
}
ggplot(df, aes(week, Year, color = value)) +
geom_point(shape = 15, size = 2.7) +
scale_color_gradientn(colours = rainbow(10)) +
coord_equal()
问题是,
我想用我的真实数据 "stretch" 图表,这样我可以更清楚地看到它(我的时间序列更短),当我不使用 coord_equal 时,方块不会填充绘图区:
ggplot(df, aes(week, Year, color = value)) +
geom_point(shape = 15, size = 2.7) +
scale_color_gradientn(colours = rainbow(10))
这就像使用 geom_raster
geom 一样简单吗?
ggplot(df, aes(week, Year)) +
geom_raster(aes(fill = value)) +
scale_fill_gradientn(colours = rainbow(10)) +
coord_equal()