Я пытаюсь сделать scatter plot
с R
plotly
, где точки окрашены в соответствии с градиентом, и в дополнение к этому я хотел бы написать аннотацию в несколько точек, где я бы как цвет аннотации текста, чтобы следовать за тем же градиентом цвета.
Вот данные игрушки:
set.seed(1)
df <- data.frame(x=rnorm(100),y=-1*log10(runif(100,0,1)),id=paste0("id",1:100),stringsAsFactors = F)
Вот график цветного рассеяния:
library(plotly)
library(dplyr)
scatter.plot <- plot_ly(type='scatter',mode='markers',x=~df$x,y=~df$y,color=~df$y,colors=c("blue","red"),showlegend=FALSE) %>%
layout(xaxis=list(title="Effect Size",zeroline=F),yaxis=list(title="Significance",zeroline=F))
, который дает:
![enter image description here](https://i.stack.imgur.com/2WQ9Z.png)
Затем я пытаюсь добавить текстовую аннотацию.
Сначала я создаю данные аннотации:
ann.df <- df[sample(100,5,replace = F),]
Затем я пытаюсь добавить текст аннотации:
scatter.plot <- scatter.plot %>% layout(annotations = list(x=ann.df$x,y=ann.df$y,text=ann.df$id,xref="x",yref="y",showarrow=T,arrowhead=5,arrowcolor=ann.df$y,ax=20,ay=-40,colors=c("blue","red"),font=list(size=15,color=ann.df$y,colors=c("blue","red"))))
Текст добавлен, но не имеет цветовой кодировки:
![enter image description here](https://i.stack.imgur.com/dqUap.png)
Есть идеи, как получить цвет текста в соответствии с df$y
с градиентом c("blue","red")
?