id_flag
帮助部分仅说c("center", "center")
。我试图弄清楚如何将标签放在代表数据点的点上方。就像目前一样,它们位于下方并与外部标签重叠,使其无法读取。
feldspars <- data.frame(or=c(41, 94), Al=c(53, 4.6), An=c(4.3,0.7))
ternaryplot( feldspars,
scale = 100,
pch = 19,
cex = 0.4,
dimnames = c("Orthoclase", "Albite", "Anorthite"),
labels = c("outside"),
main = "Feldspars: Samples 24b and 41",
id = c("MS-13-24b", "MS-14-41"),
id_just = c("right", "center")
)
有什么想法吗?我试过了右,左,上,下,上,下,这些话都失败了。我用谷歌搜索了手册,我甚至尝试找到代码。
先谢谢。
答案 0 :(得分:1)
id:s的基本位置(即在点下)似乎是硬编码的。如果您在R控制台中键入ternaryplot
,则会看到代码:
function (x, scale = 1, dimnames = NULL, dimnames_position = c("corner",
...lots of code...
在上一个grid.text
部分中,您发现id_just
用作just
参数的值:
if (!is.null(id))
grid.text(x = xp, y = unit(yp + 0.015, "snpc") - 0.5 *
size, label = as.character(id), just = id_just, gp = gpar(col = id_color,
cex = cex))
要获得比?ternaryplot
的{{1}}可能值id_just
更好的描述,请参阅?grid.text
。
如果您将-
中的“y = unit(yp - 0.015, "snpc")
”更改为“+
”,请保存已编辑的功能并将id_just
设置为c("left", "bottom")
标签像这样:
答案 1 :(得分:0)
指向Henrik的辛勤工作:
?grid::grid.text
“文本相对于其(x,y)位置的合理性。如果有两个值,则第一个值指定水平对齐,第二个值指定垂直对齐。可能的字符串值为:”left“,”right“ “,”“center”,“center”,“bottom”和“top”。对于数值,0表示左对齐,1表示右对齐。“