R 比例\颜色\布鲁尔(ggplot2)不会为所有线条上色

R 比例\颜色\布鲁尔(ggplot2)不会为所有线条上色,r,ggplot2,colors,R,Ggplot2,Colors,运行此ggplot2代码时: ggplot(canine_lower, aes(x=x, y=y, colour=Teeth)) + geom_smooth(method="lm", formula= y~poly(x,4), se=FALSE) + scale_color_grey(start=0.9, end=0.1) 我得到这个图要感谢比例\颜色\灰色函数: 所有牙齿组之间都有逐渐的灰色过渡(从1到16)。 不过,我想把它涂上颜色。出于这个原因,我雇用了scale_color

运行此ggplot2代码时:

ggplot(canine_lower, aes(x=x, y=y, colour=Teeth)) +
  geom_smooth(method="lm", formula= y~poly(x,4), se=FALSE) + 
  scale_color_grey(start=0.9, end=0.1)
我得到这个图要感谢比例\颜色\灰色函数:

所有牙齿组之间都有逐渐的灰色过渡(从1到16)。 不过,我想把它涂上颜色。出于这个原因,我雇用了scale_color_brewer,取得了部分成功。运行代码为:

ggplot(canine_lower, aes(x=x, y=y, colour=Teeth)) +
  geom_smooth(method="lm", formula= y~poly(x,4), se=FALSE)+
  scale_color_brewer(palette="Reds")
它提供了这个未完成的情节:

如上所示,从10到16没有颜色

如何使用此函数跨越颜色范围?是否有其他替代功能


我必须说,我尝试使用scale\u color\u gradient,但没有成功。

brewer.pal(在包
RColorBrewer
中,
scale\u color\u brewer
用于生成颜色的函数是9,用于顺序调色板。如果查看
brewer.pal
的帮助,可以检查每个调色板类型的最大颜色数

您可以通过许多其他方式生成更大的调色板,如@NateDay所示的
scale\u color\u viridis
,或者使用下面的两个示例,但是很难在图形中区分这么多不同的颜色

mtcars$rowname=rownames(mtcars)

ggplot(mtcars[1:16, ], aes(mpg, hp, color=rowname)) +
  geom_point() +
  scale_colour_manual(values=hcl(seq(0,360,length=17)[1:16], 100,65))

ggplot(mtcars[1:16, ], aes(mpg, hp, color=rowname)) +
  geom_point() +
  scale_colour_manual(values=hcl(0,100,seq(40,100,length=16)))

brewer.pal
(在包
RColorBrewer
中)用于生成颜色的函数
scale\u color\u brewer
的最大颜色数是9,用于顺序调色板。如果查看
brewer.pal
的帮助,可以检查每个调色板类型的最大颜色数

您可以通过许多其他方式生成更大的调色板,如@NateDay所示的
scale\u color\u viridis
,或者使用下面的两个示例,但是很难在图形中区分这么多不同的颜色

mtcars$rowname=rownames(mtcars)

ggplot(mtcars[1:16, ], aes(mpg, hp, color=rowname)) +
  geom_point() +
  scale_colour_manual(values=hcl(seq(0,360,length=17)[1:16], 100,65))

ggplot(mtcars[1:16, ], aes(mpg, hp, color=rowname)) +
  geom_point() +
  scale_colour_manual(values=hcl(0,100,seq(40,100,length=16)))

您可以使用
库(viridis)
作为替代:

# a reproducible example
mtcars <- add_rownames(mtcars)
ggplot(mtcars, aes(mpg, hp, color = rowname)) +
  geom_point() +
  viridis::scale_color_viridis(discrete = TRUE)
#一个可复制的示例

mtcars您可以使用
库(viridis)
作为替代:

# a reproducible example
mtcars <- add_rownames(mtcars)
ggplot(mtcars, aes(mpg, hp, color = rowname)) +
  geom_point() +
  viridis::scale_color_viridis(discrete = TRUE)
#一个可复制的示例

mtcars感谢您快速而有益的回答。一切都明白了,比例、颜色和手动功能都非常好!谢谢你快速而有用的回答。一切都明白了,比例、颜色和手动功能都非常好!