【问题标题】:connecting observations with lines in ggtern将观察与 ggtern 中的线连接起来
【发布时间】:2015-09-22 12:25:48
【问题描述】:

在 ggtern 中是否有通过每个连续点之间的直线连接观察结果?我的代码是:

require(ggtern)    

x  <- data.frame(
      A = c( 0, 0, 1, 0.1, 0.6, 0.2,0.8,0.33 ),
      B = c( 0, 1, 0, 0.3, 0.2, 0.8, 0.1,0.33),
      C = c( 1, 0, 0, 0.6, 0.2, 0.0, 0.1,0.33)
    )


    ggtern(data=x,aes(A,B,C)) + 
        geom_point(fill="blue",type="l",shape=21,size=2) 
          theme_classic() )

【问题讨论】:

  • 您可以使用 geom_segment() 函数。我不知道您的数据是如何排序的,但这将包括任意点之间的线。 aa &lt;- ggtern(data=x,aes(A,B,C)) + geom_point(fill="blue",type="l",shape=21,size=2)+ theme_classic()aa + geom_segment(aes(x=x[1:4,1],xend=x[5:8,1],y = x[1:4,2],yend=x[5:8,2],z=x[1:4,3], zend=x[5:8,3]),col=2)
  • @Jimbou 有没有办法让它们保持有序?将 x[1:3,1] 连接到 x[1:3,2],然后将 x[1:3,2] 连接到x[1:3,3] 等等而不必指定每一行?
  • 我不确定我是否理解问题所在。但是当您想将点 1 (x=x[1,1],y= x[1,2],z=x[1,3]) 与点 2 (x=x[2,1],y = x[2,2],z=x[2,3]) 然后到点 3 (x=x[3,1],y= x[3,2],z=x[3,3])等等,你可以使用i=seq(1,7,2) ; aa + geom_segment(aes(x=x[i,1],xend=x[(i+1),1],y = x[i,2],yend=x[(i+1),2],z=x[i,3], zend=x[(i+1),3]),col=2)
  • 你试过geom_path(...)

标签: r plot ggplot2 ggtern


【解决方案1】:

geom_path(...)按顺序连接点。

ggtern(data=x,aes(A,B,C)) + 
  geom_path(color="green")+
  geom_point(type="l",shape=21,size=8) +
  geom_text(label=seq(nrow(x)), color="red")+
  theme_classic() 

我更改了点的大小和形状并添加了标签,只是为了显示它们是按顺序连接的。

【讨论】:

  • 有没有办法用文字标注?例如将标签放在圆圈之外
猜你喜欢
  • 2020-08-18
  • 2015-09-01
  • 1970-01-01
  • 2015-08-04
  • 2018-05-19
  • 2021-08-30
  • 2022-01-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多