Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.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
R ggplot2中比例\颜色\梯度的设置值_R_Ggplot2 - Fatal编程技术网

R ggplot2中比例\颜色\梯度的设置值

R ggplot2中比例\颜色\梯度的设置值,r,ggplot2,R,Ggplot2,我试图使用scale\u color\u gradientn来清楚地显示负和正的值:负的是蓝色,正的是红色。但是gradientn似乎忽略了我的颜色向量,只生成了一个大的渐变,而不是n个小的渐变。这是我的示例代码 xx <- -100:100 yy <- xx fma <- data.frame( xx, yy) ggplot( fma) + geom_point( aes( xx, yy, col=yy)) + scale_colour_gradientn(

我试图使用scale\u color\u gradientn来清楚地显示负和正的值:负的是蓝色,正的是红色。但是gradientn似乎忽略了我的颜色向量,只生成了一个大的渐变,而不是n个小的渐变。这是我的示例代码

xx <- -100:100
yy <- xx
fma <- data.frame( xx, yy)
ggplot( fma) +
  geom_point( aes( xx, yy, col=yy)) +
  scale_colour_gradientn(
    colours=c('#0000ff','#0000ff','#ff0000','#ff0000'),
    values=c(  -100,       -1,      1,      100))

xx我不使用
scale\u color\u continuous
,而是使用
factor
变量告诉这些点的颜色,并使用
scale\u color\u discrete
*\u manual
。在本例中,我们在
aes
中使用一个条件,因此
col
根据
yy
的值接收
TRUE
FALSE
,但是如果您想要更多可能的值,您可以在
时使用
开关
大小写
用可能的颜色类别填充
yy_范围
变量

ggplot(fma) +
    geom_point(aes( xx, yy, col = yy < 0)) +
    scale_color_discrete(c('#0000ff','#ff0000'))
ggplot(fma)+
几何点(aes(xx,yy,col=yy<0))+
刻度颜色离散(c('0000ff','ff0000'))

如果您希望将颜色比例保持为渐变,而不是二分色比例,可以执行以下操作:

xx <- -100:100
yy <- xx
fma <- data.frame( xx, yy)
ggplot( fma) +
  geom_point( aes( xx, yy, col=yy)) +
  scale_colour_gradientn(
    colours=c('indianred4','indianred1','white','darkseagreen1','darkseagreen4'),
    values=c(  0,       49.5,  50,    50.5,      100)/100)

xx可能重复:(值应该从0到1,它们与数据中的值不对应)。从
scale\u color\u gradientn
文档中关于
value
:如果颜色不应沿渐变均匀定位,此向量给出位置(0到1之间)对于颜色向量中的每种颜色。谢谢,评论非常有用。