[英]Draw a boxplot with several boxplots using ggplot2
我想用 dataframe 的 x 軸繪制 dataframe 的箱線圖,我將繪制具有要繪制的各種箱線圖的特定名稱的圖。 這是數據集
辦公自動化 | White_British | Low_Occupancy | 失業者 | 資質 |
---|---|---|---|---|
E00004120 | 42.3566879 | 6.293706294 | 1.893939394 | 73.62637363 |
E00004121 | 47.2 | 5.93220339 | 2.688172043 | 69.90291262 |
E00004122 | 40.6779661 | 2.912621359 | 1.212121212 | 67.58241758 |
E00004123 | 49.66216216 | 0.925925926 | 2.803738318 | 60.77586207 |
E00004124 | 51.13636364 | 2 | 3.816793893 | 65.98639456 |
E00004125 | 41.41791045 | 3.93258427 | 3.846153846 | 74.20634921 |
E00004126 | 48.54014599 | 5.555555556 | 4.545454545 | 62.44725738 |
E00004127 | 48.67924528 | 8.870967742 | 0.938967136 | 60.35242291 |
E00004128 | 45.39249147 | 2.48447205 | 2.164502165 | 70.07874016 |
E00004129 | 49.05660377 | 3.521126761 | 4.310344828 | 66.66666667 |
E00004130 | 38.80597015 | 6.25 | 0.917431193 | 66.66666667 |
E00004131 | 39.64285714 | 7.56302521 | 1.869158879 | 64.47368421 |
E00004132 | 55.88235294 | 4.347826087 | 3.797468354 | 73.4939759 |
E00004133 | 41.96078431 | 7.627118644 | 1.990049751 | 65.38461538 |
E00004134 | 53.19148936 | 6 | 2.702702703 | 72.89156627 |
E00004135 | 46.85314685 | 4.761904762 | 3.731343284 | 74.82014388 |
E00004136 | 59.64912281 | 0.909090909 | 2.732240437 | 73.68421053 |
E00004137 | 48.16176471 | 5.442176871 | 2.752293578 | 69.06779661 |
E00004138 | 42.22222222 | 2.816901408 | 4.972375691 | 58.16326531 |
這實際上只是一個很長的表的一個子集。 調用excel表到R后,使用ggplot調用表。 使用了此代碼框架: ggplot(data, aes (x)) + geom_boxplot()
有時ggplot(data) + geom_boxplot(aes(x))
其中 x 是 dataframe 中的向量(本例中為一列)。
所以第一次這是我使用的 R 代碼: ggplot(Census.Data, aes(x = White_British, Low_Occupancy, Unemployed, Qualification)) + geom_boxplot()
我得到的是 White_British 數據列繪制在 X 軸上,而 Low_Occupancy 的數據列繪制在 y 軸上,如下圖所示:
將 aes(x) 放入 geom_boxplot() 參數時也會發生同樣的情況,但這不是大問題。 為了有點聰明,我把我的專欄稱為 [| White_British | Low_Occupancy | 失業 | 資格 |] 到一個名為 censusgroups 的 object 中,考慮如果我將 object 名稱放在 aes(x) 中,並用x =
指定對這些列的調用,以表示它們將 Z34D1F91FB2E514B8576FAB1A75A 排序到問題。 沒那么聰明。 censusgroups <- Census.Data [, 2:5]
ggplot(Census.Data) + geom_boxplot(aes(x = censusgroups))
-- 在 R 工作室的 plot 選項卡上返回一個空白頁
ggplot(Census.Data) + geom_boxplot(aes(x = Census.Data [, 2:5]))
-- 仍然返回一個空白頁
長話短說,因為其他一些探索也導致了錯誤,我使用了 R Studio 的默認箱線圖 function。
gach <-boxplot(x= Census.Data[, 2:5], xlab = 'Data Groups', ylab = 'Percentages', col = topo.colors(4, 0.6, rev = F))
並得到了下面的結果。 事實上,這是我希望使用 ggplot 功能獲得的結果,因為我更喜歡ggplot
而不是默認值,因為它具有出色的圖形功能。
我想知道如何使用ggplot
編寫代碼來創建上面的箱線圖。
首先嘗試旋轉您的數據:
data <-
data %>%
tidyr::pivot_longer(cols = White_British:Qualification, names_to = "Data Groups", values_to = "Percentages")
col = topo.colors(4, 0.6, rev = F)
ggplot(data, aes(x = `Data Groups`, y = Percentages, fill = `Data Groups`)) +
geom_boxplot() +
scale_fill_manual(values = col) +
theme(legend.position = "none")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.