r - 如何将特定的标记点添加到 ggtern 图中?
问题描述
使用 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 图中?
解决方案
这似乎有两个要点。首先是创建一个注释,尽管这可能并不理想,因为它不如一个点那么精确。一个例子是,
ggtern() +
annotate(geom = 'text',
x = c(0.5,1/3,0.0),
y = c(0.5,1/3,0.0),
z = c(0.0,1/3,1.0),
angle = c(0,30,60),
vjust = c(1.5,0.5,-0.5),
label = paste("Point",c("A","B","C")),
color = c("green","red",'blue')) +
theme_dark() +
theme_nomask()
第二个选项是创建一个新的数据框并将其添加到绘图中。虽然这具有对点有更多控制的优点,但缺点是标记需要额外的工作。
推荐阅读
- r - 通过匹配数据框之间的两个值在数据框中创建一个新列
- python - 将 Tensorflow Keras 模型移植到 Tensorflow 版本 1.14.0 时出错
- javascript - 剪贴板数据向文本添加随机返回
- swift - 滚动时如何一次旋转表格视图单元格中的所有视图?
- python - 如何停止在 django_restframework 中获取重复数据?
- sql-server - 如何删除临时表
- python-3.x - pyinstaller v3.5 执行失败
- char - 字符串索引超出范围,是否有比较两个字符串的正确方法?
- sql - 从主表中获取所有信息,其中子表中的日期字段超过 365 天 - 只是稍微复杂一点
- javascript - 如何比较当前活动标签的 URL