在时间序列图上绘制 PNG
Plot PNG on Time Series Plot
我正在尝试使用 annotation_raster 将图像放在时间序列图上,但是因为 y 值是一个日期,所以我一直收到错误信息
"UseMethod("rescale") 错误:
没有适用于 'rescale' 的方法应用于 class“字符”
的对象
有没有办法使用 annotation_raster 或其他更好的方法?
require(ggplot2)
require(ggpubr)
library(png)
###Set working directory
wd <- "E:/R/DataViz/Data" # top level working directory
setwd(wd)
###Make Data Frame
Dates <- seq(as.Date('2020-01-01'), as.Date('2020-01-31'), by = 'days')
Number <- seq(1:31)
DF <- data.frame(Dates,Number)
###Import PNG
mypngfile <- download.file('http://api.altmetric.com/donut/502878_64x64.png', destfile = 'mypng.png', mode = 'wb')
PNG <- readPNG("mypng.png")
####Plot Data
ggplot(DF,aes(x = Dates, y = Number)) +
geom_line() +
annotation_raster(PNG, ymin = 20,ymax = 30,
xmin =
"2020-01-06",
xmax =
"2020-01-27")
由于您的 x
值是日期值,因此您需要在调用 annotation_raster
时为您的 xmin/xmin
使用日期。使用
ggplot(DF,aes(x = Dates, y = Number)) +
geom_line() +
annotation_raster(PNG, ymin = 20,ymax = 30,
xmin =
as.Date("2020-01-06"),
xmax =
as.Date("2020-01-27"))
我正在尝试使用 annotation_raster 将图像放在时间序列图上,但是因为 y 值是一个日期,所以我一直收到错误信息
"UseMethod("rescale") 错误: 没有适用于 'rescale' 的方法应用于 class“字符”
的对象有没有办法使用 annotation_raster 或其他更好的方法?
require(ggplot2)
require(ggpubr)
library(png)
###Set working directory
wd <- "E:/R/DataViz/Data" # top level working directory
setwd(wd)
###Make Data Frame
Dates <- seq(as.Date('2020-01-01'), as.Date('2020-01-31'), by = 'days')
Number <- seq(1:31)
DF <- data.frame(Dates,Number)
###Import PNG
mypngfile <- download.file('http://api.altmetric.com/donut/502878_64x64.png', destfile = 'mypng.png', mode = 'wb')
PNG <- readPNG("mypng.png")
####Plot Data
ggplot(DF,aes(x = Dates, y = Number)) +
geom_line() +
annotation_raster(PNG, ymin = 20,ymax = 30,
xmin =
"2020-01-06",
xmax =
"2020-01-27")
由于您的 x
值是日期值,因此您需要在调用 annotation_raster
时为您的 xmin/xmin
使用日期。使用
ggplot(DF,aes(x = Dates, y = Number)) +
geom_line() +
annotation_raster(PNG, ymin = 20,ymax = 30,
xmin =
as.Date("2020-01-06"),
xmax =
as.Date("2020-01-27"))