2016-05-05 7 views
1

私はggplot2のラッパー関数を探していました。これは凡例のテキストを定義された長方形の領域に置くのに役立ちます。これまで私は見つけていない。ここに私の場合です:ggplot2の式を含むラップレジェンドテキスト

library (ggplot2) 
p = ggplot (mtcars, aes (x = mpg, y= cyl,color = factor (cyl))) 
p + geom_point() 
z = unique (factor (mtcars$cyl)) 
p + geom_point() + scale_color_manual(name="legend title", breaks = z, 
            labels = c (expression(a + b + c + d + e + f + g + h + i), expression(x) , expression(y)), 
            values = c("red","blue","green")) 

私が欲しいものは、5文字の幅内にラップ長い表現を持つことです。

定義済みのテキスト幅で各凡例キーのテキストを自動的に折り返す関数がありますか?また、式にも適用できるかどうか疑問です。

答えて

0

からstringrまでを使用すると、次のようになります。要求されたとおりに値5を使用して折り返しますが、それほど大きくはありません。

library(ggplot2) 
library(stringr) 
p = ggplot (mtcars, aes (x = mpg, y= cyl,color = factor (cyl))) 
p + geom_point() 
z = unique (factor (mtcars$cyl)) 
p + geom_point() + scale_color_manual(name="legend title", breaks = z, 
             labels = c(str_wrap(expression(a + b + c + d + e + f + g + h + i), 5), expression(x) , expression(y)), 
             values = c("red","blue","green")) 

enter image description here

+0

@stevebIは、このいずれかを試してみました。しかし、表現をより複雑にすると(下付き文字や上付き文字を導入するなど)、それはうまくいかないように見えます。 –

+0

@ satyanarayanraoスーパーとサブスクリプトのコードを含めることができますか?私はそれらを見ることができますが、あなたの特定のケースに焦点を当てることは始めるのに適しています。 – steveb

+0

ここでは: str = paste( "P [\"、 "a"、 "\"]^m * Q * "、" P [\ "、" b "、" \ "]^m * (x)、式(y)) ここで、式は期待どおりに出てこない。実際、私はそのような表現の長い列を持ち、それを包み込みたい。 –