Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
';合并';使用ggplot2和R绘制两个图_R_Plot - Fatal编程技术网

';合并';使用ggplot2和R绘制两个图

';合并';使用ggplot2和R绘制两个图,r,plot,R,Plot,给定以下数据集: data = cbind(1:10,c('open','reopen','closed'),letters[1:3],1:10) data = rbind(data,cbind(1:10,c('open','closed','reopen'),letters[1:3],5:10)) data = rbind(data,cbind(1:10,c('closed','open','reopen'),letters[1:3],3:10)) data = data.frame(data

给定以下数据集:

data = cbind(1:10,c('open','reopen','closed'),letters[1:3],1:10)
data = rbind(data,cbind(1:10,c('open','closed','reopen'),letters[1:3],5:10))
data = rbind(data,cbind(1:10,c('closed','open','reopen'),letters[1:3],3:10))
data = data.frame(data);
colnames(data) <- c("id","status","author","when")
但,同样地,我得到了一个由“作者”写的带有身份和作者价值观的传奇。我如何才能得到相同的结果,但与作者和其他身份的传奇?我的基本原理是,我希望将同一数据集的两个图层叠在一起。
我不认为一个绘图可以有不同的色阶/图例。你可以一起破解一些东西(),但在这种情况下,如果你的geom之一是point,你可以只使用
fill
和其中一个填充的point选项

ggplot(data, aes(when,id)) +
  geom_line(aes(group = id,colour = status)) +
  geom_point(aes(group = id, fill = author),
             shape = 21, color = NA, size = 4)
此处使用的颜色各相同,但您可以单独编辑颜色或填充比例,例如添加

 scale_fill_brewer(type = "qual") +
 scale_color_brewer(type = "qual", palette = 2)


我同意安德里夫顿的观点,即用两种方式使用颜色很难区分。您还可以尝试使用线型、点形状,甚至使用
geom_text
打印,使用单词、字母或数字作为标签,而不是点。您说您有6个以上的author值,但要为author区分6种以上的颜色是非常困难的,尤其是当颜色也用于状态时。

让我们看看您的数据。首先,您应该意识到您的
when
id
列是字符串,因此您正在绘制1、10、2、3。。。不是1,…9,10。我们可以解决这个问题:

data$when.num <-as.numeric(as.character(data$when))
data$id.num <-as.numeric(as.character(data$id))

data$when.num您最好使用
+geom_point(aes(shape=status))
为不同的状态使用不同的标记。我尝试过,但形状限制为六个不同的值,并且状态集更大。我试图达到同样的效果,但使用颜色。谢谢安迪的回应。问题是形状比例被限制为6个不同的值,我的作者栏更大。我也试过尺寸,但结果不是很令人满意。也许值得给我们一个更现实的数据集来使用?谢谢Gregor。我同意默认值和绘图值的结果可能不太好,但我希望通过调整线大小和点大小来解决这个问题。
data$when.num <-as.numeric(as.character(data$when))
data$id.num <-as.numeric(as.character(data$id))
require(ggplot2)

p <- ggplot(data, aes(x = when.num, y = id)) +
  geom_line(aes(group = id,colour = status)) +
  geom_point(aes(group = id,shape = author))

print(p)