2017-08-18 17 views
2

このMinitab三項グラフをggtern 2.2.1で複製しようとしています。R:ggternを使った塗りつぶし等高線図2.2.1

Minitab Ternary Contour Plot

マイRコード以下である:

myData<-data.frame(x=c(0.00000, 0.16667, 0.66667, 0.16667, 0.50000, 0.50000, 
         1.00000, 0.00000, 0.00000, 0.33333), 
        y=c(0.00000, 0.16667, 0.16667, 0.66667, 0.00000, 0.50000, 
         0.00000, 1.00000, 0.50000, 0.33333), 
        z=c(1.00000, 0.66667, 0.16667, 0.16667, 0.50000, 0.00000, 
         0.00000, 0.00000, 0.50000, 0.33333), 
        a=c(0.546, 0.550, 0.455, 0.658, 0.451, 0.559, 0.355, 
         0.762, 0.654, 0.554)) 

myData$a_breaks<-cut(myData$a, 
        breaks=seq(0.4, 0.7, 0.1), include.lowest = TRUE) 

ggtern(myData, aes(y, x, z))+ 
    stat_interpolate_tern(aes(value=a, fill=..level..), 
         geom="polygon", 
         method="lm", 
         binwidth=0.1, 
         expand=1, 
         base="identity") 

私は(下記参照)まで等高線を複製として得ているが、それらを埋めることはできません。私もメッセージを受け取る

Warning message: 
In structure(c(), class = c(class(x), class(y))) : 
    Calling 'structure(NULL, *)' is deprecated, as NULL cannot have attributes. 
    Consider 'structure(list(), *)' instead. 

私が間違っていることについてのガイダンスは?

ggtern contour plot

答えて

0

this questionからの回答を使用することで、私は私が探していたものに近似何かを得ることができたが、それはまだ全く同じではありません - 例えば、等高線間の分裂は非常に不揃いに見えます。

library(ggplot2) 
library(ggtern) 

x<-seq(0,1,0.01) 
y<-seq(0,1,0.01) 

myData<-expand.grid(x=x,y=y) 

myData$z<-1 - (myData$x + myData$y) 
myData<-myData[myData$z>(-0.01),] 
myData$a<-(0.355*myData$x + 0.762*myData$y + 0.546*myData$z) 
myData$a_breaks<-cut(myData$a, breaks=seq(0.3, 0.8, 0.1), include.lowest =   
        TRUE) 

ggtern(myData, aes(y, x, z, color=a_breaks))+ 
    geom_point(size=5)+ 
    scale_color_brewer(type="seq", palette = "Blues") 

R ternary contour plot

関連する問題