为R中同一绘图中的一个变量创建两个条形图

为R中同一绘图中的一个变量创建两个条形图,r,dataframe,bar-chart,R,Dataframe,Bar Chart,我有以下数据帧: 结构(列表(状态=c(“AL”、“AL”、“AL”、“AL”、“AR”、“AR”、“AR”), “AZ”,“AZ”,“AZ”,“CA”,“CA”,“CO”,“CO”,“CT”,“CT”, “CT”、“DC”、“DC”、“DC”、“DE”、“DE”、“FL”、“FL”、“FL”、“GA”, “GA”、“GA”、“IA”、“IA”、“IA”、“ID”、“ID”、“ID”、“IL”、“IL”、“IL”, “IN”,“IN”,“IN”,“KS”,“KS”,“KY”,“KY”,“KY”,

我有以下数据帧:

结构(列表(状态=c(“AL”、“AL”、“AL”、“AL”、“AR”、“AR”、“AR”), “AZ”,“AZ”,“AZ”,“CA”,“CA”,“CO”,“CO”,“CT”,“CT”, “CT”、“DC”、“DC”、“DC”、“DE”、“DE”、“FL”、“FL”、“FL”、“GA”, “GA”、“GA”、“IA”、“IA”、“IA”、“ID”、“ID”、“ID”、“IL”、“IL”、“IL”, “IN”,“IN”,“IN”,“KS”,“KS”,“KY”,“KY”,“KY”,“LA”,“LA”, “LA”、“MA”、“MA”、“MA”、“MD”、“MD”、“MD”、“ME”、“ME”、“ME”、“MI”, “MI”、“MI”、“MN”、“MN”、“MN”、“MO”、“MO”、“MO”、“MS”、“MS”、“MS”, “MT”、“MT”、“MT”、“NC”、“NC”、“ND”、“ND”、“ND”、“NE”、“NE”, “NE”、“NH”、“NH”、“NH”、“NJ”、“NJ”、“NJ”、“NM”、“NM”、“NM”、“NV”, “NV”、“NV”、“NY”、“NY”、“OH”、“OH”、“OH”、“OK”、“OK”、“OK”, “或”、“或”、“或”、“PA”、“PA”、“PA”、“RI”、“RI”、“RI”、“SC”、“SC”, “SC”、“SD”、“SD”、“SD”、“TN”、“TN”、“TX”、“TX”、“UT”, “UT”、“UT”、“VA”、“VA”、“VA”、“VT”、“VT”、“VT”、“WA”、“WA”、“WA”, “WI”、“WI”、“WI”、“WV”、“WV”、“WV”、“WY”、“WY”、“WY”),状态fp=c(1, 1, 1, 5, 5, 5, 4, 4, 4, 6, 6, 6, 8, 8, 8, 9, 9, 9, 11, 11, 11, 10, 10, 10, 12, 12, 12, 13, 13, 13, 19, 19, 19, 16, 16, 16, 17, 17, 17, 18, 18, 18, 20, 20, 20, 21, 21, 21, 22, 22, 22, 25, 25, 25, 24, 24, 24, 23, 23, 23, 26, 26, 26, 27, 27, 27, 29, 29, 29, 28, 28, 28, 30, 30, 30, 37, 37, 37, 38, 38, 38, 31, 31, 31, 33, 33, 33, 34, 34, 34, 35, 35, 35, 32, 32, 32, 36, 36, 36, 39, 39, 39, 40, 40, 40, 41, 41, 41, 42, 42, 42, 44, 44, 44, 45, 45, 45, 46, 46, 46, 47, 47, 47, 48, 48, 48, 49, 49, 49, 51, 51, 51, 50, 50、50、53、53、53、55、55、54、54、56、56、56),美国地质调查局(USGS)来源=c(“脱盐率USGS”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表水地形”、“地下水比率”、“海水淡化率”, “地表地形”“地下水比率”“美国地质调查局”),美国地质调查局比率=c(0, 0.952570177680636, 0.0474298223193641, 0, 0.320802874858715, 0.679197125141285, 0.00118726161868536, 0.547498049247416, 0.451314689133899, 0.413200045045025, 0.395270309964684, 0.191529644990291, 0.00049905298794486, 0.828135128137654, 0.171365818874401, 0.738849458064565, 0.217035114820704, 0.0441154271147311, 0, 1, 0, 0.219319890968065, 0.671092726949002, 0.109587382082933, 0.656684963919327, 0.126404575163429, 0.216910460917244, 0.00721908685014584, 0.783558213835537, 0.209222699314317, 0, 0.770320218152936, 0.229679781847064, 0, 0.797942191638031, 0.202
library(dplyr)
library(ggplot2)
df %>%
  pivot_longer(ends_with("ratio"), names_to = "Dataset", values_to = "Ratio") %>%
  pivot_longer(ends_with("source"), names_to = "Source", values_to = "Type") %>%
  mutate(Type = gsub("_USGS", "", gsub("_WRI", "", Type))) %>%
  ggplot(aes(x = STATE, y = Ratio, fill = Type, group = Source))+
  geom_col(position = "dodge")+
  theme_classic()
table(gsub("_USGS","",df$USGS_source) == gsub("_WRI","",df$WRI_source))
TRUE 
147
library(ggplot2)
library(tidyr)
library(dplyr)

df %>%
mutate(source = gsub("_USGS","",USGS_source)) %>%
select(STATE,source,WRI_ratio,USGS_ratio) %>%
pivot_longer(cols=c("USGS_ratio","WRI_ratio"),
names_sep="_",names_to=c("data","var1"))



   # A tibble: 294 x 5
   STATE source            data  var1     value
   <chr> <chr>             <chr> <chr>    <dbl>
 1 AL    desalinatedRatio  USGS  ratio 0       
 2 AL    desalinatedRatio  WRI   ratio 0.000121
 3 AL    surfacewaterRatio USGS  ratio 0.953   
 4 AL    surfacewaterRatio WRI   ratio 0.999   
 5 AL    groundwaterRatio  USGS  ratio 0.0474  
 6 AL    groundwaterRatio  WRI   ratio 0.000938
 7 AR    desalinatedRatio  USGS  ratio 0       
 8 AR    desalinatedRatio  WRI   ratio 0       
 9 AR    surfacewaterRatio USGS  ratio 0.321   
10 AR    surfacewaterRatio WRI   ratio 0.459  
g = df %>%
mutate(source = gsub("_USGS","",USGS_source)) %>%
pivot_longer(cols=c("USGS_ratio","WRI_ratio"),
names_sep="_",names_to=c("data","var1")) %>%
ggplot(aes(x=data,y=value,fill=source)) +
geom_col() + facet_wrap(~STATE,nrow=1) +
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))

ggsave(g,file="test.png",width=30,height=5)