R中点阵图例中的线上的点

时间:2018-08-27 20:11:13

标签: r key legend lattice

如何使用点在行中间显示的点阵绘制图例?

有两个很好的相关答案: Include lines and points in lattice legend plot in Rhttp://r.789695.n4.nabble.com/How-to-overlay-lines-and-rectangles-in-lattice-plot-key-td4727682.html

不幸的是,当我将 space 参数更改为除 right 之外的其他任何值:

import numpy as np

nx = 50
ny = 40
nz = 150

x = np.linspace(1, 51, nx)
y = np.linspace(1, 41, ny)
z = np.linspace(1, 151, nz)

x_bc = x[:, np.newaxis, np.newaxis]
y_bc = y[np.newaxis, :, np.newaxis]
z_bc = z[np.newaxis, np.newaxis, :]

arr = x_bc + y_bc + z_bc

我收到以下错误:

auto.key=list(space="right",lines=TRUE,points=TRUE) # worked fine

auto.key=list(space="left",lines=TRUE,points=TRUE) # error message
auto.key=list(x=0, y=0,lines=TRUE,points=TRUE) # error message

我该如何解决?

很抱歉,如果解决方案显而易见。我是R和grid的新手,但已经搜寻了几天。 非常感谢您的帮助。

示例:

Error in do.call("fun", legend[[i]]$args, quote = TRUE) : 
  second argument must be a list

1 个答案:

答案 0 :(得分:1)

您快要在那里了...请注意,对于space = "left",您需要将自定义函数drawComboKey()应用于上的图例。类似地,这适用于space = "bottom"(或"top")。

my.chart = xyplot(Sepal.Length + Sepal.Width ~ Petal.Length + Petal.Width, 
                  data = iris, type = "b",
                  auto.key = list(space="left", lines = TRUE, points = TRUE))

my.chart$legend$left$fun = "drawComboKey" # same position as 'space' above
plot(my.chart)

xyplot(1)

请注意,当使用x, y而不是space时,该功能需要传递给my.chart$legend$inside$fun