2017-04-18 49 views
1
與GGPLOT2條形圖

我對繪畫條形圖代碼是在這裏問題戰平使用facet_grid功能

library(ggplot2) 

fig_num <- ggplot(data=branch.fig, aes(y=branch.fig$num, x=branch.fig$film.type, fill = branch.fig$film.type)) + 
    geom_bar(position=position_dodge(), stat="identity", width = 0.3, colour = "gray35") + 
    scale_fill_manual(values = colors) + 
    facet_grid(branch.type~.) + 
    geom_errorbar(aes(ymin=branch.fig$num, ymax=branch.fig$num +branch.fig$SE), position="dodge", width=0.1, col = "gray40") + 
    theme(legend.position = "none", plot.title = element_text(hjust = 0.5)) + 
    labs(x = "Film Type",y = "Branch Number") + 
    ggtitle("DAS = 54") + coord_flip() 
fig_num 

我想有應該是這樣的結果,

enter image description here

但是我得到的是這樣的,R結合了部分數據,我不知道爲什麼會出現這種情況,這對我來說確實是一個很大的問題,真誠地尋求你的幫助,非常感謝!

enter image description here

以下是數據集

dput(subset(branch.fig)) 
structure(list(film.type = structure(c(1L, 1L, 2L, 2L, 3L, 3L, 
4L, 4L, 5L, 5L, 6L, 6L), .Label = c("black", "ck", "dark-gray", 
"green", "red", "white"), class = "factor"), branch.type = structure(c(1L, 
2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L), .Label = c("F", 
"V"), class = "factor"), num = c(14.6666666666667, 3.33333333333333, 
14, 2.66666666666667, 15.3333333333333, 2, 14.6666666666667, 
2.66666666666667, 16.6666666666667, 3.33333333333333, 20.3333333333333, 
1.66666666666667), SE = c(0.333333333333333, 0.333333333333333, 
1.15470053837925, 0.333333333333333, 0.881917103688197, 0, 0.881917103688197, 
0.666666666666667, 0.333333333333333, 0.666666666666667, 2.33333333333333, 
0.666666666666667), n = c(3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L)), .Names = c("film.type", "branch.type", "num", "SE", 
"n"), row.names = c(NA, -12L), class = c("grouped_df", "tbl_df", 
"tbl", "data.frame"), vars = list(film.type), drop = TRUE, indices = list(
    0:1, 2:3, 4:5, 6:7, 8:9, 10:11), group_sizes = c(2L, 2L, 
2L, 2L, 2L, 2L), biggest_group_size = 2L, labels = structure(list(
film.type = structure(1:6, .Label = c("black", "ck", "dark-gray", 
    "green", "red", "white"), class = "factor")), row.names = c(NA, 
-6L), class = "data.frame", vars = list(film.type), drop = TRUE, .Names = 
"film.type")) 
+1

請以[可重現的形式]提供您的數據(http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)。不要鏈接你的數據的截圖,因爲這需要別人在幫助你解決問題之前抄錄它們。 –

+0

感謝您的提醒,我編輯了我的問題以複製數據集〜 –

+0

不幸的是,'dput'輸出無法正常工作,因爲'dplyr'和'dput'並不完全相處。嘗試發佈'dput(ungroup(branch.fig))'輸出(從這個問題http://stackoverflow.com/questions/29039553/reproducible-example-and-dput-error) – bdemarest

回答

1

有許多與你的代碼的問題。
1.您的dput生成錯誤。以下命令生成數據。
2.數據幀在data=branch.fig中命名。無需再次將其命名爲aes()的一部分。
3.在此圖表中沒有閃避,因此請在geom_bargeom_errorbar中刪除dodge命令。
4.據我所見,沒有colors對象。我已經爲手動色標增加了一些顏色。

# Data 
branch.fig = structure(list(film.type = structure(c(1L, 1L, 2L, 2L, 3L, 3L, 
4L, 4L, 5L, 5L, 6L, 6L), .Label = c("black", "ck", "dark-gray", 
"green", "red", "white"), class = "factor"), branch.type = structure(c(1L, 
2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L), .Label = c("F", 
"V"), class = "factor"), num = c(14.6666666666667, 3.33333333333333, 
14, 2.66666666666667, 15.3333333333333, 2, 14.6666666666667, 
2.66666666666667, 16.6666666666667, 3.33333333333333, 20.3333333333333, 
1.66666666666667), SE = c(0.333333333333333, 0.333333333333333, 
1.15470053837925, 0.333333333333333, 0.881917103688197, 0, 0.881917103688197, 
0.666666666666667, 0.333333333333333, 0.666666666666667, 2.33333333333333, 
0.666666666666667), n = c(3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L)), .Names = c("film.type", "branch.type", "num", "SE", 
"n"), row.names = c(NA, -12L), class = "data.frame") 


library(ggplot2) 

# Plot 
fig_num = ggplot(data = branch.fig, aes(y = num, x = film.type, fill = film.type)) + 
    geom_bar(stat = "identity", width = 0.3, colour = "gray35") + 
    scale_fill_manual(values = c("black", "orange", "grey", "green", "red", "white")) + 
    facet_grid(branch.type ~ .) + 
    geom_errorbar(aes(ymin = num, ymax = num + SE), width = 0.1, col = "gray40") + 
    theme(legend.position = "none", plot.title = element_text(hjust = 0.5)) + 
    labs(x = "Film Type", y = "Branch Number") + 
    ggtitle("DAS = 54") + coord_flip() 

fig_num 
+0

謝謝你的回答!這個問題可能是因爲我重複了我的代碼中的數據框,當我更改aes()〜中的代碼時,數字會回來 –