我scatterD3
library
在 R 中使用(我觉得非常赏心悦目)来创建散点图。
我想保持axes
固定,但是当我这样做时,我points
不再处于中心位置。这是一个我可以忍受的小问题,但是,如果axes
可以编辑值标签,我可以轻松解决问题。
我的javascript
知识htmlwidgets
有限,因此我的问题是:有没有办法编辑轴值标签?
library(scatterD3)
xvar=cos(seq(0,2*pi,length.out=200))
yvar=sin(seq(0,2*pi,length.out=200))
scatterD3(x=xvar,y=yvar,fixed=TRUE)
move<-c(1,3)
scatterD3(x=xvar+move[1],y=yvar+move[2],fixed=TRUE)
# If I try to fix the axes' limits
scatterD3(x=xvar+move[1],y=yvar+move[2],xlim=c(-0.2,2.2),ylim=c(1.8,4.2),fixed=TRUE)
# I can put it in the origin and change the tooltip but the axes would be wrong
tooltips<-paste("xvar: ",xvar+move[1],"<br />","yvar: ",yvar+move[2])
scatterD3(x=xvar,y=yvar,fixed=TRUE,tooltip_text=tooltips)
编辑 2016-11-24
当前的开发版本在修复xlim
和ylim
(第三个示例)时可以正常工作。我包括一段基本的r
代码,使散点图居中(将圆圈更改为椭圆,因此问题更加明显)。另外,我按照 Juba 的建议在 github 中打开了一个问题。
xvar=cos(seq(0,2*pi,length.out=200))
yvar=2*sin(seq(0,2*pi,length.out=200))
move<-c(1,3)
xvar=xvar+move[1]
yvar=yvar+move[2]
scatterD3(x=xvar,y=yvar,fixed=TRUE)
# margin included so the points are not just at the border
margin=0.02
#calculate xlim and ylim
xmin=min(xvar)
xmax=max(xvar)
xd=xmax-xmin
xmin=xmin-xd*margin
xmax=xmax-xd*margin
ymin=min(yvar)
ymax=max(yvar)
yd=ymax-ymin
ymin=ymin-yd*margin
ymax=ymax+yd*margin
if(xd>yd){
ymin=ymin-(xd-yd)/2
ymax=ymax+(xd-yd)/2
}else{
xmin=xmin-(yd-xd)/2
xmax=xmax+(yd-xd)/2
}
scatterD3(x=xvar,y=yvar,
xlim=c(xmin,xmax),
ylim=c(ymin,ymax),
fixed=TRUE)
编辑 2016-12-01
这个问题在 Linux 和 Windows 下的当前开发版本中得到了很好的解决(我很确定它适用于 Mac,但我还没有测试过)。我不知道我是否应该按照此处的建议标记关闭,或者按照此处的建议删除问题。