首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >提高ggpairs中散点图的可读性

提高ggpairs中散点图的可读性
EN

Stack Overflow用户
提问于 2017-06-08 04:30:20
回答 2查看 2.4K关注 0票数 1

我正在使用ISLR库中的Auto dataset和gpairs库中的函数ggpairs()来创建一个包含所有可能的变量组合的散点图。我的代码如下:

代码语言:javascript
复制
data(Auto)
setDT(Auto)
ggpairs(Auto[, -c("name"), with = FALSE] , 
        lower = list(continuous = wrap("points", color = "red", alpha = 0.5), 
                     combo = wrap("box", color = "orange", alpha = 0.3), 
                     discrete = wrap("facetbar", color = "yellow", alpha = 0.3) ), 
                    diag = list(continuous = wrap("densityDiag",  color = "blue", alpha = 0.5) ))+
     theme(axis.text.x = element_text(angle = 90, hjust = 1))

情节如下:

这个阴谋有一些问题:

  1. 轴勾标不可读。我如何删除数字,并可能旋转的滴答标签,以垂直于轴?
  2. 如何为组合对执行不同的颜色(分类-连续)

您的建议将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-08 07:19:23

也许建议的解决方案并不完全符合你的愿望,但我希望它能有所帮助。

  1. 您需要调用更多的库来使代码正常工作。
  2. 您需要有一些因素来“强制”这样的分类变量。

下面的代码可以做到这一点:

代码语言:javascript
复制
library(ISLR)
library(data.table)
library(GGally)
library(ggplot2)
data(Auto, package = "ISLR")

# remove unwanted column and make categorical variables
Auto2 <- Auto[, -9]
Auto2$cylinders <- factor(Auto2$cylinders)
Auto2$origin <- factor(Auto2$origin)

ggpairs(Auto2 , 
        lower = list(continuous = wrap("points", color = "red", alpha = 0.5), 
                     combo = wrap("box", color = "orange", alpha = 0.3), 
                     discrete = wrap("facetbar", color = "yellow", alpha = 0.3) ), 
        diag = list(continuous = wrap("densityDiag",  color = "blue", alpha = 0.5) ))

这产生了以下情况:

请告诉我这是否是你想要的。

票数 2
EN

Stack Overflow用户

发布于 2017-06-08 10:29:23

非常棘手的东西,梳包装使用因子水平作为输入,以改变颜色(如@KoenV的例子所示),而不是离散的,这是一个错误的名称。但是,更改类会更改上层/diag部分。

我发现的唯一替代方案是使用putPlot手动更改地块。

代码语言:javascript
复制
# remove ticks (I don't get labels when plotting it)

p = ggpairs(Auto[, -c("name"), with = FALSE] , 
        lower = list(continuous = wrap("points", color = "red", alpha = 0.5), 
                     combo = wrap("box", color = "orange", alpha = 0.3), 
                     discrete = wrap("facetbar", color = "yellow", alpha = 0.3)), 
        diag = list(continuous = wrap("densityDiag",  color = "blue", alpha = 0.5) ))+
        theme(axis.text = element_blank(),axis.ticks = element_blank())

并更改一个单独的绘图并添加一个方框/+颜色(可能在所需的绘图上循环。

代码语言:javascript
复制
cp = ggplot(Auto) +
  geom_boxplot(aes(as.factor(cylinders), mpg),color="orange")
putPlot(p, cp, 2,1)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44426674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档