2016-06-12 10 views
0

タイトル(軸のタイトルとプロットのタイトル)とプロットの端の間にスペースを作成したいとします。私は運が無ければaxis.titleplot.titleでvjustを試しました。私がvjustのさまざまな値を試したときにプロットで実際に変更されたものはありませんでした。私もplot.marginを試しましたが、何も起こりそうにありませんでした。タイトルとプロットの端との間の空白を調整する

データ:

data = data.frame(Category = c(0,1), value = c(40000, 120000)) 
data$Category = factor(data$Category, levels = c(0,1), labels = c("One-time", "Repeat")) 

プロット:

p = ggplot(data, aes(Category, Value)) + 
    geom_bar(stat = "identity", width = 0.5, position=position_dodge(width=0.9)) + 
    geom_text(aes(label=Value), position=position_dodge(width=0.9), family = "mono", vjust=-0.5) + 
    ggtitle("Title") + 
    scale_y_continuous(expand = c(0,0), limits = c(0,150000)) + 
    scale_x_discrete(expand = c(0,0), limits = c("One-time", "Repeat")) + 
    xlab("X axis Title") + 
    ylab("Y axis Title") 

テーマ:

p + theme(
    panel.grid.major = element_line(linetype = "blank"), 
    panel.grid.minor = element_line(linetype = "blank"), 
    axis.title = element_text(family = "sans", size = 15), 
    axis.text = element_text(family = "mono", size = 12), 
    plot.title = element_text(family = "sans", size = 18), 
    panel.background = element_rect(fill = NA) 
) 

Exported plot

答えて

2

あなたは左、マージンは4つの入力を必要とし、彼らが注文トップにスペースを指定して、右、下というmargin

p + theme(
    panel.grid.major = element_line(linetype = "blank"), 
    panel.grid.minor = element_line(linetype = "blank"), 
    axis.title.x = element_text(family = "sans", size = 15, margin=margin(30,0,0,0)), 
    axis.title.y = element_text(family = "sans", size = 15, margin=margin(0,30,0,0)), 
    axis.text = element_text(family = "mono", size = 12), 
    plot.title = element_text(family = "sans", size = 18, margin=margin(0,0,30,0)), 
    panel.background = element_rect(fill = NA) 
) 

注意を使用して、これをやりたいです。また、開発用のggplot2バージョンを使用していますので、私のタイトルデフォルトが左揃えになっています。 'hjust'と 'vjust'は古いバージョンのggplot2で働いていました。

enter image description here

+0

ちょっと、うまくいった!マージンは、より高いレベルの 'axis.title'では設定できず、代わりに個々の軸レベル(' axis.title.x.'と 'axis.title.y')に設定する必要があります。 – rnewbie

関連する問題