将向量中的单个标题添加到每个R图

将向量中的单个标题添加到每个R图,r,ggplot2,plot,R,Ggplot2,Plot,对于函数,我需要在向量中保留变量名,并使用函数绘制变量的密度图 我的问题总结如下 var_names <- c("mpg","cyl","disp","hp","drat","wt","qsec","vs","am","gear","carb") plotter <

对于函数,我需要在向量中保留变量名,并使用函数绘制变量的密度图

我的问题总结如下

var_names <- c("mpg","cyl","disp","hp","drat","wt","qsec","vs","am","gear","carb")

plotter <- function(x){
  
  plot(density(x),
       main = "",
       xlab = "",
       ylab = "")
  title(var_names)
  
  
}

par(mfrow=c(4,3),mar=c(1,1,1,1))

apply(mtcars,2,plotter)

var\u names我建议使用
ggplot2
和名称向量的
tidyverse
方法。您可以将数据格式化为更长的格式,然后过滤所需的变量。使用镶嵌面和
geom_density()
可以避免标题问题。代码如下:

library(tidyverse)
#Vector
var_names <- c("mpg","cyl","disp","hp","drat","wt","qsec","vs","am","gear","carb")
#Data
mtcars %>% pivot_longer(cols = everything()) %>%
  filter(name %in% var_names) %>%
  ggplot(aes(x=value))+
  geom_density()+
  facet_wrap(.~name,scales = 'free')+
  theme_bw()
库(tidyverse)
#载体
变量名称%pivot\u更长(cols=everything())%>%
筛选器(名称%在%var\u名称中)%%>%
ggplot(aes(x=值))+
几何密度()+
面_包裹(.~name,scales='free')+
主题_bw()
输出:


我建议使用
ggplot2
和名称向量的
tidyverse
方法。您可以将数据格式化为更长的格式,然后过滤所需的变量。使用镶嵌面和
geom_density()
可以避免标题问题。代码如下:

library(tidyverse)
#Vector
var_names <- c("mpg","cyl","disp","hp","drat","wt","qsec","vs","am","gear","carb")
#Data
mtcars %>% pivot_longer(cols = everything()) %>%
  filter(name %in% var_names) %>%
  ggplot(aes(x=value))+
  geom_density()+
  facet_wrap(.~name,scales = 'free')+
  theme_bw()
库(tidyverse)
#载体
变量名称%pivot\u更长(cols=everything())%>%
筛选器(名称%在%var\u名称中)%%>%
ggplot(aes(x=值))+
几何密度()+
面_包裹(.~name,scales='free')+
主题_bw()
输出:


我是自己的超级粉丝。在您的示例中,查看
am
disp
vs
的x轴值,这似乎是非常罕见的情况之一(我不记得上一次了),在这种情况下,基本绘图比ggplot做出更好的设计决策。我本人是
ggplot2
的忠实粉丝。在您的示例中,查看
am
disp
vs
的x轴值,这似乎是非常罕见的情况之一(我不记得上一次了),在这种情况下,基准图比ggplot做出了更好的设计决策。感谢上帝,我原以为你的第一个答案就是我想要的,但这个补充正是我想要做的。非常感谢。谢天谢地,我原以为你的第一个答案就是我想要的,但这个补充正是我想要做的。非常感谢。
library(tidyverse)
#Vector
var_names <- c("mpg","cyl","disp","hp","drat","wt","qsec","vs","am","gear","carb")
#Data
mtcars %>% pivot_longer(cols = everything()) %>%
  filter(name %in% var_names) %>%
  ggplot(aes(x=value))+
  geom_density()+
  facet_wrap(.~name,scales = 'free')+
  theme_bw()