R 使用日志打印图例

R 使用日志打印图例,r,ggplot2,fill,R,Ggplot2,Fill,我试图使用一个值的日志来填充绘图中的条形图,并使用填充图例来显示原始值 我想要的图例颜色示例: library(data.table) df = data.table(date=Sys.Date()+0:7, size=c(100,200,50,300,450,70,50,200), objective=c(1,2,2,2,5,2,3,1), actuals=c(0.8,2.5,2,2.2,4,1.8

我试图使用一个值的日志来填充绘图中的条形图,并使用填充图例来显示原始值

我想要的图例颜色示例:

library(data.table)
df = data.table(date=Sys.Date()+0:7,
                size=c(100,200,50,300,450,70,50,200),
                objective=c(1,2,2,2,5,2,3,1),
                actuals=c(0.8,2.5,2,2.2,4,1.8,15,0.2))
df[,deviation:=actuals/objective-1]
df[,log_deviation:=log(deviation+1)]

ggplot(df,aes(date,size,fill=log_deviation))+geom_bar(stat="identity")+
  scale_fill_gradient2(high = "tomato", low = "blue",mid = "seagreen1",labels = scales::percent)
ggplot(df,aes(date,size,fill=deviation))+geom_bar(stat="identity")+
  scale_fill_gradient2(high = "tomato", low = "blue",mid = "seagreen1",labels = scales::percent)

以及我想要的图例值:

library(data.table)
df = data.table(date=Sys.Date()+0:7,
                size=c(100,200,50,300,450,70,50,200),
                objective=c(1,2,2,2,5,2,3,1),
                actuals=c(0.8,2.5,2,2.2,4,1.8,15,0.2))
df[,deviation:=actuals/objective-1]
df[,log_deviation:=log(deviation+1)]

ggplot(df,aes(date,size,fill=log_deviation))+geom_bar(stat="identity")+
  scale_fill_gradient2(high = "tomato", low = "blue",mid = "seagreen1",labels = scales::percent)
ggplot(df,aes(date,size,fill=deviation))+geom_bar(stat="identity")+
  scale_fill_gradient2(high = "tomato", low = "blue",mid = "seagreen1",labels = scales::percent)


有没有优雅的方法?谢谢

您可以在比例中定义变换:

ggplot(df,aes(date,size,fill = deviation))+geom_bar(stat="identity")+
  scale_fill_gradient2(high = "tomato", low = "blue",
    mid = "seagreen1",labels = scales::percent, 
    trans = "log1p")

如果您不喜欢默认的打断,请在标尺中定义
打断

这对您有用吗<代码>ggplot(df,aes(日期,大小,填充=偏差))+几何图形条(stat=“identity”)+比例填充梯度2(high=“tomato”,low=“blue”,mid=“seagreen1”,标签=比例::百分比,trans=“log1p”)是!就这样!我不得不覆盖中断,以避免较高的数字与以下代码重叠,但仅此而已,谢谢!你想回答这个问题,这样我就可以给你评分了吗?打破