在R中的条形图上绘制多列

在R中的条形图上绘制多列,r,ggplot2,R,Ggplot2,是否有任何方法可以将平均盗窃率和平均盗窃率绘制在同一条形图上作为单独的条形图?我们可以直接在colMeans输出上应用条形图 barplot(colMeans(df1[1:2], na.rm = TRUE)) 或者使用tidyverse,我们通过summary/cross获得所需列的平均值,通过pivot\u longer将其重塑为“long”格式,并通过ggplot获得绘图 library(dplyr) library(tidyr) df1 %>% summarise(acr


是否有任何方法可以将平均盗窃率和平均盗窃率绘制在同一条形图上作为单独的条形图?

我们可以直接在
colMeans
输出上应用
条形图

barplot(colMeans(df1[1:2], na.rm = TRUE))

或者使用
tidyverse
,我们通过
summary/cross
获得所需列的
平均值
,通过
pivot\u longer
将其重塑为“long”格式,并通过
ggplot
获得绘图

library(dplyr)
library(tidyr)
df1 %>%
    summarise(across(1:2, mean, na.rm = TRUE)) %>%
    pivot_longer(everything()) %%>%
    ggplot(aes(x = name, y = value)) + 
      geom_col()

很明显,你在这两个变量中的尺度是非常不同的。因此,您可以尝试使用刻面方法,以查看横轴的大小,否则您将看到两个极端元素。代码将意味着使用
summary_all()
使用
pivot_longer()
重塑平均值,然后设计绘图:

library(tidyverse)
#Data
df <- data.frame(Burglary_Rate=c(918.8,863.2,770.4,728.8,741.8,747,741,730.3),
                 larceny_rate=runif(8,6900000,7000000))
#Code
df %>% summarise_all(.funs = mean,na.rm=T) %>%
  pivot_longer(everything()) %>%
  ggplot(aes(x=name,y=value,fill=name))+
  geom_bar(stat = 'identity',color='black')+
  facet_wrap(.~name,scales = 'free')+
  scale_y_continuous(labels = scales::comma)+
  ggtitle('Mean values')+
  theme_bw()+
  theme(legend.position = 'top',
        plot.title = element_text(face='bold',hjust=0.5),
        axis.text = element_text(color='black',face='bold'),
        axis.title = element_text(color='black',face='bold'),
        legend.text = element_text(color='black',face='bold'),
        legend.title = element_text(color='black',face='bold'))
输出:


请使用
dput
添加数据,而不是图像。阅读并了解如何给出建议。
#Code 2
df %>% summarise_all(.funs = mean,na.rm=T) %>%
  pivot_longer(everything()) %>%
  ggplot(aes(x=name,y=value,fill=name))+
  geom_bar(stat = 'identity',color='black')+
  scale_y_continuous(labels = scales::comma)+
  ggtitle('Mean values')+
  theme_bw()+
  theme(legend.position = 'top',
        plot.title = element_text(face='bold',hjust=0.5),
        axis.text = element_text(color='black',face='bold'),
        axis.title = element_text(color='black',face='bold'),
        legend.text = element_text(color='black',face='bold'),
        legend.title = element_text(color='black',face='bold'))