Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.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
R 几何图形线组和比例颜色手册产生意外错误_R_Ggplot2 - Fatal编程技术网

R 几何图形线组和比例颜色手册产生意外错误

R 几何图形线组和比例颜色手册产生意外错误,r,ggplot2,R,Ggplot2,奇怪的是,我在网上找不到任何东西来解决这个问题 生成数据: rm(list = ls()) library(ggplot2) X <- as.numeric(1:100) df <- data.frame(x=X,y=rnorm(n=100,sd=.1)+sin(X*pi/200),gp=1) for (i in 2:4) df <- rbind(df,data.frame(x=X,y=rnorm(n = 100,sd = .1)+sin(X*i*pi/200),gp=i))

奇怪的是,我在网上找不到任何东西来解决这个问题

生成数据:

rm(list = ls())
library(ggplot2)
X <- as.numeric(1:100)
df <- data.frame(x=X,y=rnorm(n=100,sd=.1)+sin(X*pi/200),gp=1)
for (i in 2:4) df <- rbind(df,data.frame(x=X,y=rnorm(n = 100,sd = .1)+sin(X*i*pi/200),gp=i))
健全性检查:

> unique(df$gp)
[1] 1 2 3 4
现在,我想做的就是用不同的对比色绘制这4条线;i、 例如,我不想要以下内容:

> p <- ggplot(data = df,aes(x=x,y=y,group=gp,color=gp))+geom_line()+theme_bw()
> p
> p <- ggplot(data = df,aes(x=x,y=y,group=gp,color=gp))+geom_line()+theme_bw()+scale_color_manual(values = c('red','blue','green','black'))
> p
我如何告诉ggplot给我多种颜色,并将它们应用于每一行(标记为
group=gp
)?

您的分组变量(“gp”)属于数值类,因此ggplot2很难将离散值集分配给连续变量。如果您将“gp”重新指定为字符或因子,则可以按照上面的操作手动调整颜色

rm(list = ls())
library(ggplot2)
X <- as.numeric(1:100)
df <- data.frame(x=X,y=rnorm(n=100,sd=.1)+sin(X*pi/200),gp=1)
for (i in 2:4) df <- rbind(df,data.frame(x=X,y=rnorm(n = 100,sd = .1)+sin(X*i*pi/200),gp=i))

### Classify as character ###
df$gp <- as.character(df$gp)

### Plot ###
p <- ggplot(data = df,aes(x=x,y=y,group=gp,color=gp)) + 
  geom_line() + 
  theme_bw()
plot(p)
rm(list=ls())
图书馆(GG2)
X
Error: Continuous value supplied to discrete scale
rm(list = ls())
library(ggplot2)
X <- as.numeric(1:100)
df <- data.frame(x=X,y=rnorm(n=100,sd=.1)+sin(X*pi/200),gp=1)
for (i in 2:4) df <- rbind(df,data.frame(x=X,y=rnorm(n = 100,sd = .1)+sin(X*i*pi/200),gp=i))

### Classify as character ###
df$gp <- as.character(df$gp)

### Plot ###
p <- ggplot(data = df,aes(x=x,y=y,group=gp,color=gp)) + 
  geom_line() + 
  theme_bw()
plot(p)
### Manually adjust discrete colors ###
p <- p + 
  scale_colour_manual(values = c("red", "blue", "green", "black"))
plot(p)
### Reclassify as numeric ###
df$gp <- as.numeric(df$gp)

### Plot ###
p <- ggplot(data = df,aes(x=x,y=y,group=gp,color=gp)) + 
  geom_line() + 
  theme_bw() +
  scale_color_gradient(low = "red", high = "blue")
plot(p)