【发布时间】:2021-06-20 09:38:05
【问题描述】:
这是我需要为 R 解决的问题。我的工作在下面,但我目前找不到我的代码有什么问题。你能帮帮我吗?
当给定x,y对象时,根据x区间值改为区间数据 创建一个绘制不同 y 值的函数 plot_user1。
(1) x 和 y 都作为相同长度的数字向量给出,并且两个向量都是成对的数据。 (2) cut_breaks是用户在将数值向量x分割成截面数据时指定的截面数。由此,在与具有相同区间值的x对应的索引位置绘制y的图表。 因此,绘制的图形数量与 x 的截面数量一样多。 (提示:使用剪切功能) (3) plot_name 用对应的y值表示要绘制的图形的形状。 它具有以下三个值之一:“箱线图”、“直方图”和“散点图”。 (4) color表示图形的颜色
(1) 在一页上绘制y根据x截面值的所有条件图。 (2) 每张图的x轴名称为截面的层级,y轴名称为“y”。 (3)关于图形布局,内边距为c(4,4,2,2),外边距为c(2,2,5,2)。 (4)如果plot_name有上述三个值以外的值, “错误:plot_name 不正确。”输出字符串。 (5) 图集的标题是“条件箱线图(或散点图或 histogram) 的 y|x”,取决于输入的 plot_name 值。 (提示:在 title 函数中使用外部 =TRUE 参数)
plot_user1<-function(x,y,cut_breaks,plot_name,color) {
if(plot_name=="boxplot") {
plot_name <- boxplot
txt <- "The conditional boxplot of y|x"
}
else if (plot_name == "histogram") {plot_name <- hist
txt <- "The conditional histogram of y|x"
}
else if (plot_name == "scatter plot") {plot_name <- plot
txt <- "The conditional scatter plot of y|x"
}
else {print("Errors: The plot_name is incorrect.")}
a<-cut(x,cut_breaks)
for (i in 1: cut_breaks) {
plot_name(a,y,col=color,xlab=levels(a),ylab="y")
title(main=txt, outer=TRUE)
par(mar=c(4,4,2,2))
par(oma=c(2,2,5,2))
}
} enter image description here
我要画的情节应该是这样的。
【问题讨论】:
-
实际问题是什么?在将 x 轴切割成包含因子的数组后,您是否试图获得散点图?
-
根据我们在 plot_name 中输入的内容,该图可以是箱线图、直方图或散点图
-
一旦
x变量为cut,调用plot函数时结果会产生箱形图,调用hist函数时会出错。唯一可行的选项是boxplot。代码中的 for 循环绘制了 3 次相同的内容。 -
那我怎样才能做几个情节呢?
-
您必须遍历
a变量的所有可能级别,并且您需要过滤数据,以便每个级别仅包含当前a级别的 x 和 y 值阴谋。您还需要弄清楚如何绘制多个图形,以免它们相互覆盖。更根本的是,您应该发布x和y数据的示例(使用dput(x)并将结果包含在原始问题中)。值得先做plot(x,y),然后是hist(x,y),最后是boxplot(x,y),因为这可能会揭示一些错误。