gpt4 book ai didi

r - 在 r 图图例中排列点和线

转载 作者:行者123 更新时间:2023-12-04 11:51:29 26 4
gpt4 key购买 nike

是否可以重新排列以下情节的图例

plot(1,1, type="n")
legend("topleft", c("1", "2"), col=c("darkblue", "darkred"), pch = 1, bty = "n", horiz = T, lwd=1.25, cex=1.8)

看起来像这样(“点线点”模式)?
enter image description here

最佳答案

通常,如果您想要对绘图元素进行这种级别的控制,则必须使用原语( points()lines()/segments()text() 等)手动完成并仔细计算绘图参数(例如 par('usr') )。这是不容易的。这是如何做到这一点的一个例子:

point.line.point <- function(x1,y1,x2=x1,y2=y1,...) {
points(c(x1,x2),c(y1,y2),...);
segments(x1,y1,x2,y2,...);
};
legend.plp <- function(x,y,labels,col,linewidth=diff(par('usr')[1:2])/10,textgap=diff(par('usr')[1:2])/20,...) {
comb <- cbind(labels,col);
xc <- x;
for (i in seq_len(nrow(comb))) {
x2 <- xc+linewidth;
point.line.point(xc,y,x2,col=comb[i,'col'],...);
text(x2+textgap,y,comb[i,'labels'],...);
xc <- x2+textgap*1.5+strwidth(comb[i,'labels']);
};
};

plot(1,1,type="n");
legend.plp(par('usr')[1]+diff(par('usr')[1:2])/20,par('usr')[4]-diff(par('usr')[3:4])/20,1:2,c('darkblue','darkred'),font=2,cex=1.5);

plot

关于r - 在 r 图图例中排列点和线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31901210/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com