2016-04-08 12 views
0

の合計では動作しません私は)heightDetailsとggplot(の伝説の高さを見つけるためにしようとしていますが、私はUseMethodでエラーheightDetailsは単位

エラー(「absolute.units」を取得します): 「absolute.units」クラスのオブジェクトに適用される「単位」

例はありません適用方法:

g_legend<-function(a.gplot){ 
    tmp <- ggplot_gtable(ggplot_build(a.gplot)) 
    leg <- which(sapply(tmp$grobs, function(x) x$name) == "guide-box") 
    legend <- tmp$grobs[[leg]] 
    return(legend) 
} 
:抽出のために、私は機能g_legendは hereを示唆使用0

だから我々は、単純なbarplot

testplot <- ggplot(mtcars, aes(x=as.factor(gear), fill=as.factor(gear))) + geom_bar() 

があると、私は伝説を取得するために

testlegend <- g_legend(testplot) 

を使用しています。 is.grob(testlegend)は実際にgrobであり、grid.draw(testlegend)はうまく動作することを示唆しています。しかし、heightDetails(testlegend)は私に上記の例外を与えます。

私の推測では、testlegend $ heightには単位の合計が含まれており、heightDetailsはそれを処理できません。これが理由ですか?そうでない場合、なぜそれは機能しませんか?また、伝説の高さを取得する別の方法は何ですか?

答えて

1

古いバージョンのgrid/R/gtableを使用していると思います。更新によってエラーが修正されるはずです。言われているように、誰も絶対的なユニットがここで使われているという手がかりはありません。私の経験では、それは不正確な答えを与えます。 gtableの高さの合計は、heightDetailsメソッドを呼び出すよりも信頼できることがわかります。

+0

RStudioでは、すべてのパッケージが更新されていると伝えられますが、動作しませんでした。しかし、gtableの高さを合計することは私の目的のために完璧に機能します。ありがとう! –