提高ggpairs、ggplot中散点图的可读性
Improving the readability of the scatterplot in ggpairs, ggplot
我正在使用 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))
剧情如下:
这个情节有一些问题:
轴刻度标签不可读。我怎样才能删除数字并可能旋转刻度标签使其垂直于轴?
如何为组合对(分类 - 连续)强制使用不同的颜色
我们将不胜感激您的建议。
也许建议的解决方案与您的愿望并不完全吻合,但希望对您有所帮助。
- 您需要调用更多库才能使代码正常工作。
- 您将需要有 "force" 分类变量的因数。
以下代码可以解决问题:
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) ))
这会产生下图:
请告诉我这是否是您想要的。
非常棘手的东西,梳状包装器使用因子水平作为输入来改变颜色(如@KoenV 的示例所示)而不是离散的,这有点用词不当。但是,更改 class 会更改 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())
并更改单个图并添加箱线图/ + 颜色(可能遍历所需的图
cp = ggplot(Auto) +
geom_boxplot(aes(as.factor(cylinders), mpg),color="orange")
putPlot(p, cp, 2,1)
我正在使用 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))
剧情如下:
这个情节有一些问题:
轴刻度标签不可读。我怎样才能删除数字并可能旋转刻度标签使其垂直于轴?
如何为组合对(分类 - 连续)强制使用不同的颜色
我们将不胜感激您的建议。
也许建议的解决方案与您的愿望并不完全吻合,但希望对您有所帮助。
- 您需要调用更多库才能使代码正常工作。
- 您将需要有 "force" 分类变量的因数。
以下代码可以解决问题:
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) ))
这会产生下图:
请告诉我这是否是您想要的。
非常棘手的东西,梳状包装器使用因子水平作为输入来改变颜色(如@KoenV 的示例所示)而不是离散的,这有点用词不当。但是,更改 class 会更改 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())
并更改单个图并添加箱线图/ + 颜色(可能遍历所需的图
cp = ggplot(Auto) +
geom_boxplot(aes(as.factor(cylinders), mpg),color="orange")
putPlot(p, cp, 2,1)