操纵R情节传奇

时间:2017-02-27 21:19:24

标签: r title legend plotly

可能是一个简单的问题:

尝试使用plotly生成散点图并自定义图例。

这是我的数据:

require(plotly)
set.seed(1)

my.df <- data.frame(id=LETTERS[sample(26,100,replace=T)],x=rnorm(100),y=rnorm(100),sig=runif(100,0,1),stringsAsFactors = F)

在我的情况下,我用列索引调用它,因此:

x.idx <- which(colnames(my.df) == "x")
y.idx <- which(colnames(my.df) == "y")
sig.idx <- which(colnames(my.df) == "sig")
sig.name <- "p-value"

我想要做的是将图例标题设为sig.name,并使图例小于默认大小。所以我在尝试:

p <- plot_ly(x=~my.df[,x.idx],y=~my.df[,y.idx],color=~my.df[,sig.idx],text=~my.df$id,colors=c("darkblue","darkred")) %>% add_annotations(text=sig.name,xref="paper",yref="paper",xanchor="left",x=1,y=1,yanchor="top",legendtitle=T,showarrow=FALSE) %>% layout(legend=list(y=0.8,yanchor="top"),xaxis=list(title=colnames(my.df)[x.idx],zeroline=F),yaxis=list(title=colnames(my.df)[y.idx],zeroline=F))

这给了我: enter image description here

不完全是我想要的。

所以:

  1. 如何删除默认图例标题?

  2. 如何缩小图例?

1 个答案:

答案 0 :(得分:3)

您可能正在寻找colorbar: lencolorbar: titleenter image description here

class Example(var n: Int) extends Ordered[Example] {
  var someVar: String = "default"
  def compare(that: Example) = {
    (this.n) - (that.n) match {
      case 0 => this.someVar.compare(that.someVar)
      case other => other
    }
  }
}