rglを使用して2つの3d scatterプロットを含むhtmlドキュメントを生成しようとしていますが、両方のプロットに凡例を追加しようとすると問題が発生します。ちょうど同じコードを使用して(あるチャンクから別のチャンクにコピーして貼り付けた後、値をプロットに変更すると)、最初のプロットの凡例はhtml形式で非常に大きく表示されます。私は使用しているものと似たデータを持つサンプルスクリプトを生成しました:予期しない動作plot3dとknitrで凡例をプロットする
---
title: "example"
output: html_document
---
Example script
# First plot
```{r 1st chunk, webgl=TRUE, echo = FALSE, fig.width=10, fig.height=10}
library(rgl)
knitr::knit_hooks$set(webgl = hook_webgl)
dt <- data.frame(x = runif(70, min = 1, max = 10),
y = runif(70, min = -10, max = 1),
z = runif(70, min = -20, max = -10),
groups = rep(c("Group1", "Group2", "Group3", "Group4", "Group5", "Group6", "Group7"), each = 10))
plot3d(dt$x, dt$y, dt$z,
xlab = "X", ylab = "Y", zlab = "Z",
type ="n")
grid3d(c("x", "y+", "z"))
legend3d("bottomright",
c("Group1", "Group2", "Group3", "Group4", "Group5", "Group6", "Group7"),
col = c(1:7),
pch = 20,
bg = "black",
bty = "n",
y.intersp = 0.8,
cex = 1.5)
for (i in seq_along(unique(dt$groups))){
sub <- dt[dt$groups == unique(dt$groups)[i],]
pch3d(sub$x, sub$y, sub$z,
col = i,
pch = 16,
radius = 0.2,
add = T)}
```
This first legend is way too large, while, with the exame same code, for the next plot, the legend is normal size
# Second plot
```{r 2nd chunk, webgl=TRUE, echo = FALSE, fig.width=10, fig.height=10}
library(rgl)
knitr::knit_hooks$set(webgl = hook_webgl)
dt <- data.frame(x = runif(150, min = 2, max = 20),
y = runif(150, min = -20, max = 2),
z = runif(150, min = -30, max = -20),
groups = rep(c("Group1", "Group2", "Group3", "Group4", "Group5", "Group6", "Group7", "Group8",
"Group9", "Group10", "Group11", "Group12", "Group13", "Group14", "Group15"), each = 10))
plot3d(dt$x, dt$y, dt$z,
xlab = "X", ylab = "Y", zlab = "Z",
type ="n")
grid3d(c("x", "y+", "z"))
legend3d("bottomright",
c("Group1", "Group2", "Group3", "Group4", "Group5", "Group6", "Group7", "Group8",
"Group9", "Group10", "Group11", "Group12", "Group13", "Group14", "Group15"),
col = c(1:15),
pch = 20,
bg = "black",
bty = "n",
y.intersp = 0.8,
cex = 1.5)
for (i in seq_along(unique(dt$groups))){
sub <- dt[dt$groups == unique(dt$groups)[i],]
pch3d(sub$x, sub$y, sub$z,
col = i,
pch = 16,
radius = 0.2,
add = T)}
```
何か助けていただければ幸いです!
私にはどんなフィードバックがありますか? –
はい、申し訳ありませんが、@MikeWise。私のデータであなたの提案を試みたときに起こったことは、両方の伝説が大きすぎるということです。だから私は何が起こったのか、少なくとも私の実際のデータに似たデータでそれを再現した例を作成しようとしていました。私はすぐに回答として投稿します! –
投稿した結果とは異なる結果が得られましたか? –