我想用X值作为测量的子集,Y值作为测量数据的另一个子集来绘制一个图.

在下面的例子中,我有4个产品p1、p2、p3和p4.每一种都是根据它们的歪斜、 colored颜色 和版本定价的.

我的以下try 失败了,错误如下:

错误:美学长度必须为1,或与长度相同

library(ggplot2)
product=c("p1","p1","p1","p1","p1","p1","p1","p1","p2","p2","p2","p2","p2","p2","p2","p2","p3","p3","p3","p3","p3","p3","p3","p3","p4","p4","p4","p4","p4","p4","p4","p4")
skew=c("b","b","b","b","a","a","a","a","b","b","b","b","a","a","a","a","b","b","b","b","a","a","a","a","b","b","b","b","a","a","a","a")
version=c(0.1,0.1,0.2,0.2,0.1,0.1,0.2,0.2,0.1,0.1,0.2,0.2,0.1,0.1,0.2,0.2,0.1,0.1,0.2,0.2,0.1,0.1,0.2,0.2,0.1,0.1,0.2,0.2,0.1,0.1,0.2,0.2)
color=c("C1","C2","C1","C2","C1","C2","C1","C2","C1","C2","C1","C2","C1","C2","C1","C2","C1","C2","C1","C2","C1","C2","C1","C2","C1","C2","C1","C2","C1","C2","C1","C2")
price=c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32)
df = data.frame(product, skew, version, color, price)
# First plot all the data
p1 <- ggplot(df, aes(x=price, y=price, colour=factor(skew))) + geom_point(size=2, shape=19)
p1 <- p1 + facet_grid(version ~ color)
p1 # This gavea very good plot. So far so good
# Now plot P3 vs P1
p1 <- ggplot(df, aes(x=subset(price, product=='p1'), y=subset(price, product=='p3'), colour=factor(skew))) + geom_point(size=2, shape=19)
p1
# failed with: Error: Aesthetics must either be length one, or the same length as the dataProblems:subset(price, product == "p1"), subset(price, product == "p3")

这是我期待的结果:

这是我期待的结果

推荐答案

问题是skew没有被细分到colour=factor(skew)中,所以它的长度是错误的.由于subset(skew, product == 'p1')subset(skew, product == 'p3')相同,因此在本例中,使用哪个子集并不重要.因此,您可以通过以下方式解决问题:

p1 <- ggplot(df, aes(x=subset(price, product=='p1'),
                     y=subset(price, product=='p3'),
                     colour=factor(subset(skew, product == 'p1')))) +
              geom_point(size=2, shape=19)

请注意,大多数R用户会将其写得更简洁:

p1 <- ggplot(df, aes(x=price[product=='p1'],
                     y=price[product=='p3'],
                     colour=factor(skew[product == 'p1']))) +
              geom_point(size=2, shape=19)

R相关问答推荐

具有多个依赖变量/LHS的逻辑模型

更改绘图上的x轴断点,而不影响风险?

如何使用rmarkdown和kableExtra删除包含折叠行的表的第一列的名称

如何根据条件计算时差(天)

以R中的正确顺序将日期时间字符列转换为posixct

从开始时间和结束时间导出时间

在特定Quarto(reveal.js)幻灯片上隐藏徽标

如何使用列表中多个列表中的第一条记录创建数据框

对于变量的每个值,仅 Select 包含列表中所有值的值.R

在RStudio中堆叠条形图和折线图

从服务器在Shiny中一起渲染图标和文本

如何将SAS数据集的列名和列标签同时包含在r中GT表的表首?

按多列统计频次

如何使这些react 表对象相互独立?

如何移除GGPlot中超出与面相交的任何格网像元

如何使用For-R循环在向量中找到一系列数字

基于R中的辅助向量中的值有条件地连接向量中的字符串

在ggploy中创建GeV分布时出错

如何在R中创建条形图,使条形图在y轴上围绕0.5而不是0构建条形图?

将矩阵中特定行的双精度值添加到下一行中