You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在ggtern中使用geom_segment报错‘Ignoring unknown aesthetics: z and zend’求解决

解决ggtern中geom_segment的z/zend美学报错问题

这不是包的问题,是因为ggtern的geom_segment不需要手动指定z和zend这两个美学映射——三元坐标系的逻辑是三个维度之和固定为1,所以只要给出x/xend和y/yend,第三个维度会自动计算出来,手动传z/zend反而会被判定为未知参数,触发报错。

修正后的代码

直接去掉aes里的z和zend参数即可:

ggtern(df) +
  geom_segment(aes(x = v1_t1, xend = v1_t2, y = v2_t1, yend = v2_t2), arrow = arrow())

注意事项

  • 确保你的数据满足三元图的核心约束:v1_t1 + v2_t1 + v3_t1 = 1,v1_t2 + v2_t2 + v3_t2 = 1,不然生成的图会有偏差。
  • 如果需要自定义箭头样式,可以在arrow()里添加参数,比如arrow(length = unit(0.2, "cm"), type = "closed")来调整箭头大小和形状。

示例数据参考

如果需要测试效果,可以用下面的示例数据:

df <- data.frame(
  v1_t1 = c(0.2, 0.3),
  v2_t1 = c(0.3, 0.4),
  v3_t1 = c(0.5, 0.3), # 这列无需在aes中传入
  v1_t2 = c(0.4, 0.2),
  v2_t2 = c(0.2, 0.5),
  v3_t2 = c(0.4, 0.3)
)

内容的提问来源于stack exchange,提问作者KLH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 13:15:58