在qplot中循环cut2颜色参数
Looping cut2 color argument in qplot
首先公平警告,这与 coursera.org 实用机器学习中的测验问题相关。但是,我的问题不涉及实际提出的问题,而是一个关于绘图的切线问题。
我有一组训练数据,我正在尝试为每个预测变量创建一个图,其中包括 y 轴上的结果,x 轴上的数据集索引,并根据预测变量为图着色以确定导致指数偏差的原因。为了使颜色参数更清楚,我正在尝试使用 Hmisc 包中的 cut2()
。
这是我的数据:
library(ggplot2)
library(caret)
library(AppliedPredictiveModeling)
library(Hmisc)
data(concrete)
set.seed(1000)
inTrain = createDataPartition(mixtures$CompressiveStrength, p = 3/4)[[1]]
training = mixtures[ inTrain,]
testing = mixtures[-inTrain,]
training$index <- 1:nrow(training)
我试过了,它制作了所有的图,但它们都是相同的颜色。
plotCols <- function(x) {
cols <- names(x)
for (i in 1:length(cols)) {
assign(paste0("cutEx",i), cut2(x[ ,i]))
print(qplot(x$index, x$CompressiveStrength, color=paste0("cutEx",i)))
}
}
plotCols(training)
然后我试了这个,它制作了所有的图,这次它们是彩色的,但剪切不起作用。
plotCols <- function(x) {
cols <- names(x)
for (i in 1:length(cols)) {
assign(cols[i], cut2(x[ ,i]))
print(qplot(x$index, x$CompressiveStrength, color=x[ ,cols[i]]))
}
}
plotCols(training)
似乎 qplot()
不喜欢在颜色参数中包含 paste()
。有谁知道另一种遍历颜色参数并仍然保留我的削减的方法?非常感谢任何帮助!
使用 ggplot()
而不是 qplot()
更容易实现您想要的输出,因为您可以使用接受字符串作为参数的 aes_string()
。
plotCols <- function(x) {
cols <- names(x)
for (i in 1:length(cols)) {
assign(paste0("cutEx", i), cut2(x[, i]))
p <- ggplot(x) +
aes_string("index", "CompressiveStrength", color = paste0("cutEx", i)) +
geom_point()
print(p)
}
}
plotCols(training)
首先公平警告,这与 coursera.org 实用机器学习中的测验问题相关。但是,我的问题不涉及实际提出的问题,而是一个关于绘图的切线问题。
我有一组训练数据,我正在尝试为每个预测变量创建一个图,其中包括 y 轴上的结果,x 轴上的数据集索引,并根据预测变量为图着色以确定导致指数偏差的原因。为了使颜色参数更清楚,我正在尝试使用 Hmisc 包中的 cut2()
。
这是我的数据:
library(ggplot2)
library(caret)
library(AppliedPredictiveModeling)
library(Hmisc)
data(concrete)
set.seed(1000)
inTrain = createDataPartition(mixtures$CompressiveStrength, p = 3/4)[[1]]
training = mixtures[ inTrain,]
testing = mixtures[-inTrain,]
training$index <- 1:nrow(training)
我试过了,它制作了所有的图,但它们都是相同的颜色。
plotCols <- function(x) {
cols <- names(x)
for (i in 1:length(cols)) {
assign(paste0("cutEx",i), cut2(x[ ,i]))
print(qplot(x$index, x$CompressiveStrength, color=paste0("cutEx",i)))
}
}
plotCols(training)
然后我试了这个,它制作了所有的图,这次它们是彩色的,但剪切不起作用。
plotCols <- function(x) {
cols <- names(x)
for (i in 1:length(cols)) {
assign(cols[i], cut2(x[ ,i]))
print(qplot(x$index, x$CompressiveStrength, color=x[ ,cols[i]]))
}
}
plotCols(training)
似乎 qplot()
不喜欢在颜色参数中包含 paste()
。有谁知道另一种遍历颜色参数并仍然保留我的削减的方法?非常感谢任何帮助!
使用 ggplot()
而不是 qplot()
更容易实现您想要的输出,因为您可以使用接受字符串作为参数的 aes_string()
。
plotCols <- function(x) {
cols <- names(x)
for (i in 1:length(cols)) {
assign(paste0("cutEx", i), cut2(x[, i]))
p <- ggplot(x) +
aes_string("index", "CompressiveStrength", color = paste0("cutEx", i)) +
geom_point()
print(p)
}
}
plotCols(training)