Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ggplot单变量colorbrewer标度的倒序_R_Ggplot2_Colorbrewer - Fatal编程技术网

ggplot单变量colorbrewer标度的倒序

ggplot单变量colorbrewer标度的倒序,r,ggplot2,colorbrewer,R,Ggplot2,Colorbrewer,我认为ggplot的direction=-1参数会反转颜色比例。不管我打开还是关闭这个参数,我仍然得到如下所示的相同的图 我认为不使用这个参数会得到上面显示的图表,因为绿色是重音的第一种颜色。如果我打开direction=-1参数,我希望geom_line()使用最后一种重音颜色,这是深灰色,但事实并非如此 如何正确地反转色阶,使深灰色首先出现?我知道我可以简单地使用几何线条(aes(color=“深灰色”),但我宁愿回答这个问题,而不是“最简单的解决方案”。方向参数接受分配给比例的颜色并翻

我认为ggplot的
direction=-1
参数会反转颜色比例。不管我打开还是关闭这个参数,我仍然得到如下所示的相同的图

我认为不使用这个参数会得到上面显示的图表,因为绿色是
重音的第一种颜色。如果我打开
direction=-1
参数,我希望
geom_line()
使用最后一种
重音
颜色,这是深灰色,但事实并非如此


如何正确地反转色阶,使深灰色首先出现?我知道我可以简单地使用几何线条(aes(color=“深灰色”)
,但我宁愿回答这个问题,而不是“最简单的解决方案”。

方向参数接受分配给比例的颜色并翻转它们(因此分配给比例中最后一个值的颜色被分配给第一个值)。它不会更改为比例指定的颜色。由于颜色只有一个可能的值,因此看不到任何效果,因此反转比例不会导致任何更改。比较这两个示例:

library(tidyverse)
library(RColorBrewer)
mtcars %>% 
  count(cyl) %>% 
  ungroup() %>% 
  ggplot(aes(cyl, n, color = "A")) + 
  geom_line(size = 2) + 
  # scale_color_brewer(palette = "Accent", guide = "none") +  # line 8
  scale_color_brewer(palette = "Accent", direction = -1, guide = "none") + 
  NULL

您可以看到选择的颜色是相同的,只是它们分配给
cut
的顺序发生了变化

如果要更改所选颜色的顺序,可以使用
scale\u color\u manual
,使用
brewer.pal
传入调色板,然后根据需要将其翻转和/或子集:

ggplot(diamonds, aes(x = price, fill = cut)) +
    geom_histogram(position = "dodge", binwidth = 1000) +
    scale_fill_brewer(palette='Accent', direction = -1)

ggplot(diamonds, aes(x = price, fill = cut)) +
    geom_histogram(position = "dodge", binwidth = 1000) +
    scale_fill_brewer(palette='Accent', direction = -1)
mtcars %>% 
    count(cyl) %>% 
    ungroup() %>% 
    ggplot(aes(cyl, n, color = "A")) + 
    geom_line(size = 2) + 
    scale_color_manual(values = rev(brewer.pal(8, 'Accent')))