2017-03-08 4 views
1

私はグラフに以下の変更を加えようとしています:Rバーグラフの変更

(1)グラフのタイトルを中央にしたいと思います。タイトルを追加しようとすると、左側に表示されます。

(2)y軸のラベルに複数の単語が必要です。つまり「平均(ゲームごと)」です。複数の単語があるたびに、グラフが完全に変化します。可能であれば、 "Average"と "(Per Game)"を別々の行に置くこともできます。

(3)グラフの背景を灰色で白いグリッド線で表示したいと思います。

ご協力いただければ幸いです。

df <- read.table(textConnection(
    'Statistic Warm Avg Cold 
    HR(Away) 1.151 1.028 .841 
    HR(Home) 1.202 1.058 .949 
    BB(Away) 3.205 3.269 3.481 
    BB(Home) 3.286 3.367 3.669 
    Runs(Away) 4.909 4.591 4.353 
    Runs(Home) 5.173 4.739 4.608'), header = TRUE) 

library(dplyr) 
library(tidyr) 
library(ggplot2) 

df %>% 
    gather(Temperature, Average, -Statistic) %>% 
    mutate(Temperature = factor(Temperature, c("Cold", "Avg", "Warm"))) %>% 
    ggplot(aes(x=Statistic, y=Average)) + 
    geom_col(aes(fill = Temperature), position = "dodge") + 
    scale_fill_manual(values = c("blue", "yellow", "red"))+ 
    theme_bw() + 
    theme(axis.title.y = element_text(angle = 0, vjust = 0.5)) 

答えて

2

(1)タイトルは、y軸のラベルを追加するテーマ

(2)を追加labs(y = "Average\n(Per game)")plot.title = element_text(hjust = 0.5)を追加中心へ。 "\ n"は行を分割します。

(3)最も簡単な解決策は、theme_bwを除去することです。また、http://docs.ggplot2.org/dev/vignettes/themes.html

df <- read.table(textConnection(
    'Statistic Warm Avg Cold 
    HR(Away) 1.151 1.028 .841 
    HR(Home) 1.202 1.058 .949 
    BB(Away) 3.205 3.269 3.481 
    BB(Home) 3.286 3.367 3.669 
    Runs(Away) 4.909 4.591 4.353 
    Runs(Home) 5.173 4.739 4.608'), header = TRUE) 

library(dplyr) 
library(tidyr) 
library(ggplot2) 

df %>% 
    gather(Temperature, Average, -Statistic) %>% 
    mutate(Temperature = factor(Temperature, c("Cold", "Avg", "Warm"))) %>% 
    ggplot(aes(x=Statistic, y=Average)) + 
    geom_bar(aes(fill = Temperature), stat='identity', position = "dodge") + 
    scale_fill_manual(values = c("blue", "yellow", "red"))+ 
    theme(axis.title.y = element_text(angle = 0, vjust = 0.5), 
     plot.title = element_text(hjust = 0.5)) + 
    labs(title = "Title", y = "Average\n(Per game)") 
+0

ありがとうございました!それは私が欲しかったかのように見える。 –

1

をチェックアウトNBATreands'答えは完璧であり、これは私の答えです:

df %>% 
    gather(Temperature, Average, -Statistic) %>% 
    mutate(Temperature = factor(Temperature, c("Cold", "Avg", "Warm"))) %>% 
    ggplot(aes(x=Statistic, y=Average)) + 
    ggtitle("This is the title") + 
    ylab("Average\n(Per game)") + 
    geom_col(aes(fill = Temperature), position = "dodge") + 
    scale_fill_manual(values = c("blue", "yellow", "red"))+ 
    theme(
    plot.title = element_text(hjust=0.5), 
    axis.title.y = element_text(angle = 0, vjust = 0.5), 
    panel.background = element_rect(fill = "gray"), 
    panel.grid = element_line(colour = "white") 
    ) 

結果プロットは次のとおりです。 enter image description here

+0

私は背景にグレーの濃い色が好きです! –