前幾天畫條形圖厚柳,自己統(tǒng)計出來的數(shù)據(jù)把自己看蒙了半天拦耐,乍一看有點不會轉(zhuǎn)換了龙考。
記錄下數(shù)據(jù)轉(zhuǎn)換的過程
初始數(shù)據(jù)與畫圖要求
自己統(tǒng)計完數(shù)據(jù)放到excel中就是上圖中的情況箱硕。然后需要把第一列作為橫坐標筋现,以A,B兩種統(tǒng)計方法作為并列柱狀圖的數(shù)值唐础。
數(shù)據(jù)變換過程
library(tidyverse)
library(openxlsx)
df <- read.xlsx("./data.xlsx", colNames = T, rowNames = T)
df2 <- df %>% t() %>% #轉(zhuǎn)置后為矩陣"matrix" "array"
as.data.frame() %>%
rownames_to_column() %>%
gather( #變長數(shù)據(jù)
key = "type", # 原來列名變換為一列內(nèi)容的列名
value = "value",# 原來數(shù)值轉(zhuǎn)換為一列的列名。
-rowname) #指定不轉(zhuǎn)換為長數(shù)據(jù)的列矾飞∫慌颍可以用列名,可以指定x:y,也可以用排除法-y等等洒沦。
轉(zhuǎn)換后的數(shù)據(jù)入下圖
繪制草圖
繪制的草圖如下豹绪,然后根據(jù)自己的要求,更改x軸坐標順序申眼,調(diào)色瞒津,修改主題,修飾圖例就可以了括尸。
ggplot(df2,aes(type,value,fill=rowname))+
geom_bar(stat = "identity", position = "dodge")
#ggsave("plot.jpg", dpi = 600, width = 5,height = 4)