使用变量指定ggpairs图的颜色,但不绘制该变量

我有一个来自世界银行的数据集,有一些连续的和分类的变量。

> head(nationsCombImputed)
  iso3c iso2c              country year.x life_expect population birth_rate neonat_mortal_rate                     region
1   ABW    AW                Aruba   2014       75.45     103441       10.1                2.4  Latin America & Caribbean
2   AFG    AF          Afghanistan   2014       60.37   31627506       34.2               36.1                 South Asia
3   AGO    AO               Angola   2014       52.27   24227524       45.5               49.6         Sub-Saharan Africa
4   ALB    AL              Albania   2014       77.83    2893654       13.4                6.5      Europe & Central Asia
5   AND    AD              Andorra   2014       70.07      72786       20.9                1.5      Europe & Central Asia
6   ARE    AE United Arab Emirates   2014       77.37    9086139       10.8                3.6 Middle East & North Africa
               income gdp_percap.x  log_pop
1         High income     47008.83 5.014693
2          Low income      1942.48 7.500065
3 Lower middle income      7327.38 7.384309
4 Upper middle income     11307.55 6.461447
5         High income     30482.64 4.862048
6         High income     67239.00 6.958379

我希望使用ggpairs在散点图中绘制一些连续变量(life_expect,birth_rate,neonat_mortal_rate,gdp_percap.x),但我想使用数据中的区域分类变量对它们着色。 我已经尝试了许多不同的方法,但是如果不包括分类变量,我就不能着色连续变量。

ggpairs(nationsCombImputed[,c(2,5,7,8,9,11)],
        title="Scatterplot of Variables",
        mapping = ggplot2::aes(color = region),
        labeller = "iso2c")

但是我得到这个错误

stop_if_high_cardinality(数据,列,cardinality_threshold)中的错误:列'iso2c'具有比阈值(15)更多的级别(211)。 请删除列或增加'cardinality_threshold'参数。 增加cardinality_threshold可能会产生很长的处理时间

最终,我只想使用第2列中的iso2c代码,根据区域使用数据点标签对连续变量着色的4x4散点图。

ggpairs有可能吗?

好吧,这是可能的! 根据@Robin Gertenbach的建议,我将列参数添加到我的代码中,这很好,请参阅下文。

在这里输入图像描述

ggpairs(nationsCombImputed,
        title="Scatterplot of Variables",
        columns = c(5,7,8,11),
        mapping=ggplot2::aes(colour = region))

我仍然希望使用iso2c列将数据点标签添加到散点图,但是我正在为此付出努力,任何指针都将不胜感激。


正如在注释中,你可以得到ggpairs到的颜色,但不是通过指定列的数字索引想用绘制绘制维columns = c(5,7,8,11)

为了有一个文本散点图中,您将需要定义的功能,例如textscatter ,你将通过提供lower = list(continuous = textscatter)在美学中ggpairs函数调用,并指定标签。

textscatter <- function(data, mapping, ...) {
   ggplot(data, mapping, ...) + geom_text()
}

ggpairs(
  nationsCombImputed, 
  title="Scatterplot of Variables",
  columns = c(5,7,8,11),
  mapping=ggplot2::aes(colour = region, label = iso2c))
  lower = list(continuous = textscatter)
)

当然,您也可以将标签的美学定义放入文本散射中

链接地址: http://www.djcxy.com/p/30869.html

上一篇: Specify the colour of ggpairs plot using a variable but not plot that variable

下一篇: ggpairs plot with heatmap of correlation values