【发布时间】:2018-10-30 16:43:27
【问题描述】:
使用 ggplot2 我通常希望能够像这样添加数据点,
ggtern(df, aes(X, Y, Z, value = VALUE), aes(x, y, z)) +
geom_point(aes(fill = VALUE), size = 2, stroke = 0, shape = 21) +
scale_fill_gradient(low = "red",high = "yellow", guide = F) +
scale_color_gradient(low = "red",high = "yellow", guide = F) +
geom_point(aes(x = 10, y = 10, z = 50), shape = 21)
但是,当使用 ggtern 包生成三元图时,它们被插入到错误的位置(参见示例图片),并出现以下警告:
Warning: Ignoring unknown aesthetics: z
这意味着 ggplot2 可能正在尝试渲染该点而不是 ggtern。如何在 ggtern 图中添加特定的标记点?
【问题讨论】:
-
三件事,[1] 你在 ggtern 构造函数中有两个 aes 参数 [2] 你想要的点有一个加到 70 的合成,相当于
x=0.143, y=0.143 z=0.714,正是这个点所在的位置放置,[3] 警告Warning: Ignoring unknown aesthetics: z与 ggplot2 试图处理 x、y、z 美学有关,请忽略它。 -
另外,我是否也建议您查看最新开发版本中的 hexbin 或 tribin 几何图形,这将比像您那样绘制许多彩色点更清洁、更高效。
-
@NicholasHamilton 感谢您的提示! tribin 看起来可能适用于数据集,或者在同一数据集中的第二列中失败。