前几天画条形图,自己统计出来的数据把自己看蒙了半天,乍一看有点不会转换了。
记录下数据转换的过程
初始数据与画图要求
data内容.png
自己统计完数据放到excel中就是上图中的情况。然后需要把第一列作为横坐标,以A,B两种统计方法作为并列柱状图的数值。
数据变换过程
library(tidyverse)
library(openxlsx)
df <- read.xlsx("./data.xlsx", colNames = T, rowNames = T)
df2 <- df %>% t() %>% #转置后为矩阵"matrix" "array"
as.data.frame() %>%
rownames_to_column() %>%
gather( #变长数据
key = "type", # 原来列名变换为一列内容的列名
value = "value",# 原来数值转换为一列的列名。
-rowname) #指定不转换为长数据的列。可以用列名,可以指定x:y,也可以用排除法-y等等。
转换后的数据入下图
转换后数据.png
绘制草图
绘制的草图如下,然后根据自己的要求,更改x轴坐标顺序,调色,修改主题,修饰图例就可以了。
ggplot(df2,aes(type,value,fill=rowname))+
geom_bar(stat = "identity", position = "dodge")
#ggsave("plot.jpg", dpi = 600, width = 5,height = 4)
plot.jpg