R 使用ggplot2如何表示图例中的点和线
使用ggplot2,我正在绘制多个函数和一系列点。我不知道如何表示图例上的点。我意识到我需要使用一个aes()函数,但我不完全理解如何做到这一点。很抱歉,这个例子太长了,但我不知道还能用别的方法来说明它R 使用ggplot2如何表示图例中的点和线,r,statistics,plot,ggplot2,R,Statistics,Plot,Ggplot2,使用ggplot2,我正在绘制多个函数和一系列点。我不知道如何表示图例上的点。我意识到我需要使用一个aes()函数,但我不完全理解如何做到这一点。很抱歉,这个例子太长了,但我不知道还能用别的方法来说明它 ## add ggplot2 library(ggplot2) # Declare Chart values y_label = expression("y_axis"~~bgroup("(",val / km^{2},")")) x_label = "x_axis" ###########
## add ggplot2
library(ggplot2)
# Declare Chart values
y_label = expression("y_axis"~~bgroup("(",val / km^{2},")"))
x_label = "x_axis"
#############################
## Define functions
# Create a list to hold the functions
funcs <- list()
funcs[]
# loop through to define functions
for(k in 1:21){
# Make function name
funcName <- paste('func', k, sep = '' )
# make function
func = paste('function(x){exp(', k, ') * exp(x*0.01)}', sep = '')
funcs[[funcName]] = eval(parse(text=func))
}
# Specify values
yval = c(1:20)
xval = c(1:20)
# make a dataframe
d = data.frame(xval,yval)
# Specify Range
x_range <- range(1,51)
# make plot
p <-qplot(data = d,
x=xval,y=yval,
xlab = x_label,
ylab = y_label,
xlim = x_range
)+ geom_point(colour="green")
for(j in 1:length(funcs)){
p <- p + stat_function(aes(y=0),fun = funcs[[j]], colour="blue", alpha=I(1/5))
}
# make one function red
p <- p + stat_function(fun = funcs[[i]], aes(color="red"), size = 1) +
scale_colour_identity("", breaks=c("red", "green","blue"),
labels=c("Fitted Values", "Measured values","All values"))
# position legend and make remove frame
p <- p + opts(legend.position = c(0.85,0.7), legend.background = theme_rect(col = 0))
print(p)
##添加ggplot2
图书馆(GG2)
#声明图表值
y_label=表达式(“y_轴”~~b组((“,val/km^{2})”)
x_label=“x_轴”
#############################
##定义函数
#创建一个列表来保存函数
funcs将每个几何图形的颜色美学设置为常量可能会有所帮助。下面是一个小例子:
require(ggplot2)
set.seed(666)
N<-20
foo<-data.frame(x=1:N,y=runif(N),z=runif(N))
p<-ggplot(foo)
p<-p+geom_line(aes(x,y,colour="Theory"))
p<-p+geom_point(aes(x,z,colour="Practice"))
#Optional, if you want your own colours
p<-p+scale_colour_manual("Source",c('blue','red'))
print(p)
require(ggplot2)
种子(666)
N有关解决方案,请参见下文。主要思想如下:想象点下面有一条不可见的线,而线下面有不可见的点。因此,每个“系列”都会获得颜色、形状和线型属性,最后我们会根据需要手动将它们设置为不可见值(线为0,点为NA)。ggplot2将自动合并三个属性的图例
# make plot
p <- qplot(data = d, x=xval, y=yval, colour="Measured", shape="Measured",
linetype="Measured", xlab = x_label, ylab = y_label, xlim = x_range,
geom="point")
#add lines for functions
for(j in 1:length(funcs)){
p <- p + stat_function(aes(colour="All", shape="All", linetype="All"),
fun = funcs[[j]], alpha=I(1/5), geom="line")
}
# make one function special
p <- p + stat_function(fun = funcs[[1]], aes(colour="Fitted", shape="Fitted",
linetype="Fitted"), size = 1, geom="line")
# modify look
p <- p + scale_colour_manual("", values=c("green", "blue", "red")) +
scale_shape_manual("", values=c(19,NA,NA)) +
scale_linetype_manual("", values=c(0,1,1))
print(p)
#进行绘图
p这在ggplot2中本机不受支持,但我希望我能找到未来版本的支持方法。没有该行是否可以实现这一点?我希望在“练习”类别的图例中有一个点。谢谢。将颜色设置为一个选项,而不是线条的贴图美学,即将打印前的三行更改为:pIt仍然不是我希望实现的,因为这只会在图例中产生一个红点。我想要“理论”和“实践”,但蓝线代表“理论”,红点代表“实践”。不过,谢谢你的建议。谢谢你——这就是我想要实现的。