如何使用点在行中间显示的点阵绘制图例?
有两个很好的相关答案: Include lines and points in lattice legend plot in R 和 http://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
答案 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)
请注意,当使用x, y
而不是space
时,该功能需要传递给my.chart$legend$inside$fun
。