第一个图例工作正常,如下所示;
ID Reason
1 Approved
然后我尝试创建第二个图例来显示相对尺寸,在图上的其他地方,以免模糊任何点
legend(-0.108,51.712,
legend = c("Bakerloo","Central", "Circle", "Distric",
"H'smith & City", "Jubilee", "Metropolitan",
"Northern", "Piccadilly", "Victoria",
"W'loo & City"),
col = c(bakerloocol, centralcol, circlecol, districtcol,
hsmithcitycol, jubileecol, metropolitancol,
northerncol, piccadillycol, victoriacol,
waterloocitycol),
pch = 16)
这个错误,
legend(-0.135,51,46,
legend = c("100,000", "50,000", "10,000"),
pch = 16,
cex = c(10*(100000)/130627, 10*(50000)/130627, 10*(10000)/130627))
我不知道如何解释,因为它似乎没有重复我在该行代码中使用的任何符号。
以任何方式显示传奇中的点大小!
答案 0 :(得分:0)
警告
条件的长度> 1,只使用第一个元素
表示if
语句有多个值,尽管TRUE
语句中只允许FALSE
或if
。
例如,
if(c(TRUE, FALSE)){
print('Yes, I'm called!')
}
发出此警告。您可以看到这没有意义 - 应该执行if(TRUE)
之后的阻止而if(FALSE)
之后的阻止不应该。但是if(c(TRUE, FALSE))
呢?这没有任何意义,并给出了这个警告。
通过搜索警告
中提到的行if(xc <0)
在legend
的源代码中(只在R中输入legend
而没有()
),您会发现xc
是从变量Cex
生成的是par('cex')
乘以legend(cex = ...)
参数。如果您在那里提供多个值,那么最终xc
将成为多个值,而[multiple values] < 0
当然会提供多个TRUE
/ FALSE
s - 具体取决于每个值是否为多个值是&lt;因此,我们在这里有if([multiple values])
这种情况。
结论:不要向legend(cex = ...)
提供多个值。请改用legend(pt.cex = ...)
。 legend(cex = ...
)旨在按某种因素缩放整个图例。