0

我用图例做了一个情节。通过此代码:

scatter3d(x = red, y = green, z = blue, groups = C1class$V1, surface. col = 1:21,
      grid = FALSE, surface = FALSE)
legend3d("right", legend = levels(C1class$V1),
   col = rainbow(21), pch = 16, inset = -0.25, xpd = TRUE)

但我的图表如下所示:

在此处输入图像描述

我怎样才能编辑它看起来更好?
你能帮我解决一些问题吗?
谢谢你的帮助。

4

1 回答 1

0

您没有提供数据,因此我无法准确测试您的问题,但我认为下面的示例将帮助您解决问题。

我认为您的问题源于包含参数inset = -0.25。那就是将图例移出显示区域。看着你的照片,我认为你这样做的原因是因为否则传说会覆盖散点图的一部分。解决此问题的另一种方法是调整绘图区域windowRect以允许更多空间。

像你这样的情节,传说被砍掉了。

scatter3d(x = iris[,1], y = iris[,2], z = iris[,3], groups = iris[,5], 
    surface.col = rainbow(3), grid = FALSE, surface = FALSE)
legend3d("right", legend = levels(iris[,5]),
   col = rainbow(3), inset = -0.25, pch = 16, xpd = TRUE)

裁剪图例


没有缩进的第二个情节。现在图例与情节重叠。

scatter3d(x = iris[,1], y = iris[,2], z = iris[,3], groups = iris[,5], 
    surface.col = rainbow(3), grid = FALSE, surface = FALSE)
legend3d("right", legend = levels(iris[,5]),
   col = rainbow(3), pch = 16, xpd = TRUE)

图例重叠图


最后,调整窗口大小,为图例留出更多空间。

par3d(windowRect = c(100, 100, 600, 350))
scatter3d(x = iris[,1], y = iris[,2], z = iris[,3], groups = iris[,5], 
    surface.col = rainbow(3), grid = FALSE, surface = FALSE)
legend3d("right", legend = levels(iris[,5]),
   col = rainbow(3), pch = 16, xpd = TRUE)

期望的结果

您可能需要windowRec针对您的数据进行不同的调整,但此设置将是一个很好的起点。

于 2017-12-17T17:12:57.207 回答