7

ファイル全体に長い繰り返しのggplot2命令がたくさんあります。これまで私は、グラフを均一に保ち、1つのスポットで構成を行う(たとえば、すべてのグラフの色を変更するために)変数制御プリセット値を使用してきました。

私が本当に探しているのは、それらの命令を事前設定するための良い方法です。そうすれば、ステートメント全体を書く必要がなくなります。例として、私はファイルのどこかでトップを定義します:

OPTAX=theme_text(angle=30, hjust=1, vjust=1, size=8)

プロットステートメントがある場合、私は使用します

P<-ggplot(
       data=MYDATA,
       aes(x=Topics, y=value, fill=variable)) +
       ....
       opts(axis.text.x=OPTAX)
)

axis.text.x=MYVARパートを書くのを避けて、次のようなものを書きたいです。

... + opts(MYOPTS) + ...

または、optsステートメントをまったく避けて、

... + ALLMYOPTS + ...

したがって、すべてのオプションは1つのステートメントで事前定義されています。

次に、ステートメントをオーバーライドするとよいでしょう。何かのようなもの

opts(MYOPTS, axis.text.x=theme_text(angle=60)

素晴らしいので、プリセットを保持しながら、カスタムオプションを使用できます。

4

4 に答える 4

11

リストを使用して、すべての種類のggplot構成をまとめて(だけでなくopts)、複数のグラフに適用することができます。

myPrettyOptions = list(
   opts(axis.text.x=OPTAX),
   facet_wrap(~Topic),
   limits(x=c(1,2)),
   scale_x_discrete(expand=c(0,0,5))
)

次に、これを複数の場所で使用します:(節約するスペースを考えてください!):

ggplot(blah) + myPrettyOptions
# in the second plot we can override the options:
ggplot(foo) + myPrettyOptions + opts(axis.text.x=theme_text(angle=60)

これをさらに進めて、データ以外のすべてを準備することができます。

graphtemplate = ggplot(blah) + myPrettyOptions
graphtemplate %+% data1
graphtemplate %+% data2

%+%演算子の使用に注意してください。

于 2012-08-30T18:43:55.573 に答える
4

さらに簡潔なアプローチには、theme_update、theme_get、およびtheme_setメソッドの使用が含まれます。

old.theme <- theme_update(axis.text.x = theme_text(angle=30, hjust=1, vjust=1, size=8))
qplot(1,1)

古いテーマの使用に戻したい場合は、単純に、

theme_set(old.theme)
qplot(1,1)
于 2012-08-30T18:28:14.667 に答える
1

これは機能します:

ALLMYOPTS <- opts(axis.text.x = theme_text(angle=30, hjust=1, vjust=1, size=8))
P + ALLMYOPTS
于 2012-08-30T16:27:08.753 に答える
0

最初にオブジェクトのすべてのパラメータを配置します。例:

 a<- theme(axis.title.y = element_text(angle = 0))
    b<- theme(panel.background = element_rect(fill = "#e4e4e4")) + theme(axis.title.y = element_text(angle = 0, size=rel(1.5)))+ theme(axis.title.x=element_text(size=rel(1.5))) + theme(legend.text=element_text(size=rel(1.5)))+ theme(legend.title=element_text(size=rel(1.5), face = "italic")) + theme(plot.title = element_text(size = rel(1.5))) + theme(axis.text = element_text(size=rel(1.0)))
    c<- theme(axis.line.x=element_line(size=0.5, colour="black"))
    d<- theme(axis.line.y=element_line(size=0.5, colour="black"))
    e<- theme(legend.box.just = c("top"), legend.position="bottom",legend.justification=c(1,1), legend.direction="vertical", legend.box="horizontal") + theme(panel.grid.minor.y = element_blank())
    f<- ggplot(blah) + a +b +c +d +e
    f
于 2016-10-17T16:57:46.300 に答える