我有一个ggplot
个对象列表:
set.seed(1)
require(ggplot2)
pl <- lapply(1:3, function(.x) ggplot(data.frame(x=rnorm(100),y=rnorm(100),group=c(rep("a",50),rep("b",50))),aes(x=x,y=y,col=group))+geom_point())
我要转换为plotly
个对象的列表并使用保存到html
htmlwidgets::saveWidget
。
我想subplot
就是这样的方式,就像这样:
require(plotly)
htmlwidgets::saveWidget(subplot(lapply(pl,function(p) ggplotly(p))),"~/pl.html")
然而,印刷的所有传说都出现了:
有没有办法用共享图例打印?
答案 0 :(得分:1)
您可以手动覆盖$('#myForm').ajaxForm(function(response){
//Print response
$('#ResultDiv').html(response);
});
属性。 histogram = zeros(1,256);
skipcount = 0;
for i = 1:size(image,1)
for j = 1:size(image,2)
skipcount = skipcount + 1;
if (skipcount > 40)
histogram(1,image(i,j)+1) = histogram(1,image(i,j)+1) + 1;
end
end
end
创建三个图表,每个图表两个跟踪。第一个索引(showlegend
)是图表,第二个索引是跟踪(ggplotly
)。
或者更优雅的是,重新设置前4条痕迹:
p[[1]]
[['data']][[1]]
答案 1 :(得分:1)
借助@Maximilian Peters的帮助:
require(ggplot2)
require(plotly)
set.seed(1)
pl <- lapply(1:3, function(.x) ggplot(data.frame(x=rnorm(100),y=rnorm(100),group=c(rep("a",50),rep("b",50))),aes(x=x,y=y,col=group))+geom_point())
pll <- lapply(1:length(pl),function(p) {
ply <- ggplotly(pl[[p]])
if(p < length(pl)){
ply[['x']][['data']][[1]][['showlegend']] <- FALSE
ply[['x']][['data']][[2]][['showlegend']] <- FALSE
ply <- hide_legend(ply)
}
return(ply)
})
htmlwidgets::saveWidget(subplot(pll),"ply.html")