r - 具有不同分类变量的所有可能的 qplot

标签 r ggplot2 visualization data-visualization

我使用以下代码绘制了变量 lsiete 和 lcinco 的图:

qplot(lsiete, lcinco, data=enc, color=LENGTHE)

enter image description here

但是,我还想通过以下因子变量为散点图赋予颜色,以同时将其可视化:

> names(enc[,ind])
 [1] "SEX"      "RACE"     "MSTATUS"  "EDUC"     "POSITION" "SATSCHED" "TYPESCH"  "FLEX"     "URBRUR"   "HOURS"   
[11] "SCHOOL"   "ANJOB"    "TYPERES"  "LENGTHE"  "HOWLONG"  "REASONQ"  "REASONW"  "WHY" 

所以,我想要一个面板,其中包含具有上述条件的所有可能的散点图。

我如何编写代码来做到这一点?

编辑:更清楚地说,lsietelcinco 没有改变,而是颜色中的变量发生了变化

编辑2:给出一个可重现的例子。我使用随机数据创建以下数据框:

sn <- data.frame(a=rnorm(100),b=rnorm(100), cat1=sample(c('male', 'female'), 100, replace=TRUE),cat2=sample(c('U', 'AL'), 100, replace=TRUE),cat3=sample(c('AR', 'ML'), 100, replace=TRUE),cat4=sample(c('LM', 'KR'), 100, replace=TRUE))

我可以用a和b创建一个qplot,并根据cat2给出颜色:

qplot(a,b,data=sn,color=cat2)

但是,我想始终保留 a 和 b,并根据其余分类变量给出颜色,以获得所有可能的散点图面板。


最佳答案

最简单的方法是 reshape 数据并使用分面。这将创建一个包含四个面板和一个共享图例的单个图。

sn2 <- tidyr::gather(sn, 'cat', 'col', cat1:cat1.1)

ggplot(sn2, aes(a, b, col = col)) + geom_point() + facet_wrap(~cat)

enter image description here

或者,如果您更喜欢单独的图例,则需要创建四个图并将它们缝合在一起,如下所示:

plot_fun <- function(cat) {
  ggplot(sn, aes_(~a, ~b, col = cat)) + geom_point()
}

plot_list <- lapply(c(~cat1, ~cat2, ~cat3, ~cat1.1), plot_fun)
cowplot::plot_grid(plotlist = plot_list, align = 'hv')

enter image description here

关于r - 具有不同分类变量的所有可能的 qplot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39324652/

相关文章:

r - ggplot 在 x 轴上分组

R的 Shiny 应用程序在部署后会变灰,在本地可以正常运行

python - 如何在 matplotlib 轴上标记一系列值?

r - 如何在 ggplot2 中使用 facet_grid 制作 donut chart ?

r - 显示网格区域模态值的热图样式图(通过 stat_summary_2d?)

python - 是否可以在 seaborn.barplot 中为每个单独的条形图添加影线?

java - 创建鼠标移动可视化效果最丰富的方法是什么?

r - 结果中的一个或多个因子水平没有数据 : ''

r - DF 作为矩阵的总结

重新排序ggplot图例标签