R 在ggplot2的一个条上添加彩虹渐变

R 在ggplot2的一个条上添加彩虹渐变,r,ggplot2,dplyr,colors,R,Ggplot2,Dplyr,Colors,因此,我有一个df,如下所示: colour_clicks <- structure(list(Color = c("beige", "black", "blue", "brown", "burgundy", "gray", "green", "navy blue", "of many colors", &qu

因此,我有一个df,如下所示:

colour_clicks <- structure(list(Color = c("beige", "black", "blue", "brown", "burgundy", 
"gray", "green", "navy blue", "of many colors", "olive", "pink", 
"red", "violet", "white"), avg = c(1.6799741044454, 2.48696524064171, 
2.67327546825034, 1.94043703007519, 1.26768060836502, 1.94480302693078, 
1.47427101200686, 1.09180327868852, 1.90684892897407, 1.11425902864259, 
1.35, 1.48054996646546, 1.49029356060606, 2.02322924600152)), row.names = c(NA, 
14L), class = c("tbl_df", "tbl", "data.frame"))

这实际上很难找到一个解决方案,如果有人找到更优雅的东西,他们会非常渴望。我不知道彩虹覆盖的单间酒吧。最好是明确地问一个单独的问题,以获得更多的可视性

colour_clicks <- structure(list(Color = c("beige", "black", "blue", "brown", "burgundy", 
                                          "gray", "green", "navy blue", "of many colors", "olive", "pink", 
                                          "red", "violet", "white"), avg = c(1.6799741044454, 2.48696524064171, 
                                                                             2.67327546825034, 1.94043703007519, 1.26768060836502, 1.94480302693078, 
                                                                             1.47427101200686, 1.09180327868852, 1.90684892897407, 1.11425902864259, 
                                                                           1.35, 1.48054996646546, 1.49029356060606, 2.02322924600152)), row.names = 1:14, class = c("tbl_df", "tbl", "data.frame")) 
p <- colour_clicks %>%mutate(r=rank(-avg))#%>%
ggplot(p)+geom_bar(stat='identity',aes(x = reorder(Color,-avg), y=avg,fill=Color))+
   #scale_x_discrete(limits = reorder(colour_clicks$Color,colour_clicks$avg))#+

  # geom_bar(stat="identity")+
   scale_fill_manual(values=c(
   "blue",
   "black",
   "white",
   "gray",
   "brown",
   "orange",
   "beige",
   "violet",
   "red",
   "green",
   "pink",
   "orangered4",
   "olivedrab",
   "navyblue"
)[p$r]) + geom_text(aes(x=Color,y=avg,label=round(avg,1)),nudge_y = 0.2)+
   theme(legend.position = "none")
color\u点击率%
ggplot(p)+几何图形条(stat='identity',aes(x=重新排序(颜色,-avg),y=平均,填充=颜色))+
#比例x离散(限制=重新排序(颜色点击$Color,颜色点击$avg))#+
#几何图形栏(stat=“identity”)+
刻度\填充\手动(值=c(
“蓝色”,
“黑色”,
“白色”,
“灰色”,
“棕色”,
“橙色”,
“米色”,
“紫罗兰”,
“红色”,
“绿色”,
“粉红”,
“橙色4”,
“奥利弗·德拉布”,
“navyblue”
)[p$r])+几何图形文本(aes(x=颜色,y=平均值,标签=圆形(平均值,1)),微移y=0.2)+
主题(legend.position=“无”)

事实上,很难找到解决方案,如果有人找到更优雅的东西,他们会非常渴望。我不知道彩虹覆盖的单间酒吧。最好是明确地问一个单独的问题,以获得更多的可视性

colour_clicks <- structure(list(Color = c("beige", "black", "blue", "brown", "burgundy", 
                                          "gray", "green", "navy blue", "of many colors", "olive", "pink", 
                                          "red", "violet", "white"), avg = c(1.6799741044454, 2.48696524064171, 
                                                                             2.67327546825034, 1.94043703007519, 1.26768060836502, 1.94480302693078, 
                                                                             1.47427101200686, 1.09180327868852, 1.90684892897407, 1.11425902864259, 
                                                                           1.35, 1.48054996646546, 1.49029356060606, 2.02322924600152)), row.names = 1:14, class = c("tbl_df", "tbl", "data.frame")) 
p <- colour_clicks %>%mutate(r=rank(-avg))#%>%
ggplot(p)+geom_bar(stat='identity',aes(x = reorder(Color,-avg), y=avg,fill=Color))+
   #scale_x_discrete(limits = reorder(colour_clicks$Color,colour_clicks$avg))#+

  # geom_bar(stat="identity")+
   scale_fill_manual(values=c(
   "blue",
   "black",
   "white",
   "gray",
   "brown",
   "orange",
   "beige",
   "violet",
   "red",
   "green",
   "pink",
   "orangered4",
   "olivedrab",
   "navyblue"
)[p$r]) + geom_text(aes(x=Color,y=avg,label=round(avg,1)),nudge_y = 0.2)+
   theme(legend.position = "none")
color\u点击率%
ggplot(p)+几何图形条(stat='identity',aes(x=重新排序(颜色,-avg),y=平均,填充=颜色))+
#比例x离散(限制=重新排序(颜色点击$Color,颜色点击$avg))#+
#几何图形栏(stat=“identity”)+
刻度\填充\手动(值=c(
“蓝色”,
“黑色”,
“白色”,
“灰色”,
“棕色”,
“橙色”,
“米色”,
“紫罗兰”,
“红色”,
“绿色”,
“粉红”,
“橙色4”,
“奥利弗·德拉布”,
“navyblue”
)[p$r])+几何图形文本(aes(x=颜色,y=平均值,标签=圆形(平均值,1)),微移y=0.2)+
主题(legend.position=“无”)
对于(2),您指定的填充变量是
颜色
,但x轴变量是
重新排序(颜色)
,因此必须将它们更改为相同的变量。我更喜欢在调用
ggplot
之前重新排序,以避免这些类型的问题


颜色点击%>%
mutate(Color=reorder(Color,desc(avg)))%>%#在此处重新排序,而不是在ggplot调用中
ggplot(aes(x=颜色,y=平均值,填充=颜色))+
几何图形栏(stat=“identity”,color=“black”)+
刻度\填充\手动(值=c(
“蓝色”,
“黑色”,
“白色”,
“灰色”,
“棕色”,
“橙色”,
“米色”,
“紫罗兰”,
“红色”,
“绿色”,
“粉红”,
“橙色4”,
“奥利弗·德拉布”,
“navyblue”
)) +
主题(legend.position=“无”)

对于(1),除了制作自己的渐变条,没有什么好方法可以做到这一点。基本方法是创建一个从零到
avg
值的序列,然后使用该序列生成带有
colorRamp()
的渐变。不幸的是,这将分别输出R、G和B,因此必须将其转换为十六进制。但其实没那么糟。给你

#进行渐变
对于(2),您指定的填充变量是
Color
,但x轴变量是
reorder(Color)
,因此必须将它们更改为相同的变量。我更喜欢在调用
ggplot
之前重新排序,以避免这些类型的问题


颜色点击%>%
mutate(Color=reorder(Color,desc(avg)))%>%#在此处重新排序,而不是在ggplot调用中
ggplot(aes(x=颜色,y=平均值,填充=颜色))+
几何图形栏(stat=“identity”,color=“black”)+
刻度\填充\手动(值=c(
“蓝色”,
“黑色”,
“白色”,
“灰色”,
“棕色”,
“橙色”,
“米色”,
“紫罗兰”,
“红色”,
“绿色”,
“粉红”,
“橙色4”,
“奥利弗·德拉布”,
“navyblue”
)) +
主题(legend.position=“无”)

对于(1),除了制作自己的渐变条,没有什么好方法可以做到这一点。基本方法是创建一个从零到
avg
值的序列,然后使用该序列生成带有
colorRamp()
的渐变。不幸的是,这将分别输出R、G和B,因此必须将其转换为十六进制。但其实没那么糟。给你

#进行渐变

最大的声音!我对ggplot有一种爱恨之情,尤其是在格式方面。但这是非常好的解释和介绍谢谢!声音!我对ggplot有一种爱恨之情,尤其是在格式方面。但这是非常好的解释和介绍谢谢!