ggplot2日期型x轴插入.png图片不显示该如何解决?
问题原因
你的x轴变量datadate为Date类型,直接传入数值型年份作为xmin/xmax参数时,ggplot会将数值识别为距离1970-01-01的天数,对应日期远早于你的数据时间范围,图片会被绘制在可视画布外因此无法显示。
解决方法
将annotation_raster的xmin、xmax参数转换为Date类型即可,你可以根据需要调整日期范围、y轴范围来适配图片的位置和大小,修改后的参考代码如下:
library(tidyverse) library(png) library(ggplot2) mypng <- readPNG('C:/Users/User/Documents/Avilla ggplot/mark-zuckerberg-celebrity-mask.png') plot <- ggplot(d1_7, aes(x = datadate, y = fin_value)) + geom_col(aes(fill = conm))+ facet_wrap(~conm,ncol=1)+ theme_minimal()+ theme(legend.position = "none")+ ylab('Profits in $ million')+ xlab('Fiscal Year')+ scale_fill_manual(values=c("#5cc9f5")) # 仅修改xmin/xmax为Date类型即可 plot + guides(fill=guide_legend(title="")) + annotation_raster(mypng, ymin = 500000, ymax= 600000, # 转换为Date类型,可根据需要调整起止日期 xmin = as.Date("2014-01-01"), xmax = as.Date("2015-01-01"))
可选优化
如果出现图片被画布边缘截断的情况,可以在图层最后加上coord_cartesian(clip = "off")允许绘图元素超出坐标轴范围显示。
内容的提问来源于stack exchange,提问作者firmo23
相关产品推荐
相关产品推荐

