如何一起绘制 ggplotly 和 class "c('chorddiag', 'htmlwidget')" 图
How to plot ggplotly and class "c('chorddiag', 'htmlwidget')" plots together
我正在尝试绘制以下两个图表 chord 和 plt_interactive
library(igraph)
library(tidygraph)
library(chorddiag)
library(ggplot2)
m <- matrix(c(11975, 5871, 8916, 2868,
1951, 10048, 2060, 6171,
8010, 16145, 8090, 8045,
1013, 990, 940, 6907),
byrow = TRUE,
nrow = 4, ncol = 4)
groupnames <- c("black", "blonde", "brown", "red")
row.names(m) <- groupnames
colnames(m) <- groupnames
chord= chorddiag(m,type = "bipartite")
plt <- ggplot(mtcars) + geom_bar(aes(x= factor(cyl)))+ coord_flip()
plt_interactive <- ggplotly(plt)
我曾经为两个ggplotly图做如下代码:
plotly::subplot(f3, f4, nrows=2, heights = c(0.1, 0.9), margin = c(0,0,0.1,0))
但现在我不确定如何将这两个组合成子图,因为它们是不同类型的图
我也尝试了 patchwork
库并做了 f3 + f4
但它现在也可以工作了
我也尝试了 cowplot
库并做了 plot_grid(f3, f4)
没有运气
非常感谢任何帮助!
您可以使用 htmltools::browsable
将 "plots" 粘在一起。试试这个:
library(htmltools)
browsable(
tagList(list(
tags$div(
#style = 'width:80%;display:block;float:left;',
plt_interactive
),
tags$div(
#style = 'width:20%;display:block;float:left;',
chord
)
))
)
另一种方法是使用 crosstalk::bscols(plt_interactive, chord)
。
我正在尝试绘制以下两个图表 chord 和 plt_interactive
library(igraph)
library(tidygraph)
library(chorddiag)
library(ggplot2)
m <- matrix(c(11975, 5871, 8916, 2868,
1951, 10048, 2060, 6171,
8010, 16145, 8090, 8045,
1013, 990, 940, 6907),
byrow = TRUE,
nrow = 4, ncol = 4)
groupnames <- c("black", "blonde", "brown", "red")
row.names(m) <- groupnames
colnames(m) <- groupnames
chord= chorddiag(m,type = "bipartite")
plt <- ggplot(mtcars) + geom_bar(aes(x= factor(cyl)))+ coord_flip()
plt_interactive <- ggplotly(plt)
我曾经为两个ggplotly图做如下代码:
plotly::subplot(f3, f4, nrows=2, heights = c(0.1, 0.9), margin = c(0,0,0.1,0))
但现在我不确定如何将这两个组合成子图,因为它们是不同类型的图
我也尝试了
patchwork
库并做了f3 + f4
但它现在也可以工作了我也尝试了
cowplot
库并做了plot_grid(f3, f4)
没有运气
非常感谢任何帮助!
您可以使用 htmltools::browsable
将 "plots" 粘在一起。试试这个:
library(htmltools)
browsable(
tagList(list(
tags$div(
#style = 'width:80%;display:block;float:left;',
plt_interactive
),
tags$div(
#style = 'width:20%;display:block;float:left;',
chord
)
))
)
另一种方法是使用 crosstalk::bscols(plt_interactive, chord)
。