首页 > 解决方案 > 如何为 dodge_position 中的两列设置 scale_fill_gradient?

问题描述

如何为 dodge_position 中的两列添加 scale_fill_gradient?

代码:

 ggplot(df, aes(x=msc, y=as.integer(value), fill=variable)) + 
        geom_col(position='dodge')+
        theme(legend.position = "bottom")+
        labs(x = "Miesiąc",y="Ilość zapytań")+
        theme(axis.text.x = element_text(angle = 45, hjust = 1, vjust = 1,size = 11),
              axis.title = element_text(size = 12))+
        geom_text(aes(label=value),position =position_dodge(width = 1),vjust = -0.2) + 
        scale_fill_manual("legend", values = c("unikalne_zapytania" = '#009999', "zapytania" = '#4d0099')) +
        ggtitle("Wykres zapytań za ostatni rok") +
        guides(fill=guide_legend(title='Rodzaj'))

在此处输入图像描述

最后一个例子: 在此处输入图像描述

标签: rggplot2gradient

解决方案


如果没有一个最小的可重复示例,很难帮助你,但我认为你要求的东西是不可能的。您正在使用分类变量variable对条形图进行分组,但现在您想使用连续变量为相同的条形图着色。无论如何,这里有一个建议如何实现与您的要求类似的东西:

library(ggplot2)
mtcars %>%
  mutate(group = sample(c("A", "B"), nrow(mtcars),  replace=TRUE)) %>% 
  group_by(group, cyl) %>% 
  summarise(mean_mpg = mean(mpg),
            mean_disp = mean(disp)) %>% 
ggplot(aes(factor(cyl), mean_mpg)) +   
  geom_bar(aes(color=group, fill = mean_disp), position = "dodge", stat="identity")

得到这个图:

在此处输入图像描述


推荐阅读