我使用来自ISLR库的Auto数据集和来自gpairs库的函数ggpairs()来创建所有可能的变量组合的散点图。我的代码如下:
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))
这个情节存在一些问题:
轴刻度标签不可读。如何删除数字并可能将刻度标记旋转为垂直于轴?
如何为组合对强制执行不同的颜色(分类 - 连续)
您的建议将不胜感激。
答案 0 :(得分:1)
也许建议的解决方案不能完全符合您的意愿,但我希望它有所帮助。
以下代码可以解决问题:
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) ))
这会产生以下图片:
请告诉我这是否是你想要的。
答案 1 :(得分:0)
非常棘手的东西,梳子包装器使用因子水平作为输入来改变颜色(如示例中所示的@KoenV)而不是离散的,这有点用词不当。但是更改类会更改upper / diag部分。
我找到的唯一选择是使用putPlot
手动更改地块。
# 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())
更改单个图并添加boxplot / +颜色(可能在所需图上循环
cp = ggplot(Auto) +
geom_boxplot(aes(as.factor(cylinders), mpg),color="orange")
putPlot(p, cp, 2,1)