如何只加粗曲线的某个部分?在这种情况下,有效边界是上半部。
以下是我的代码
m.insert({key, test_t(5)});
我的图表:
我的一个解决方案是将数据分成上下两半,并使用不同的lwd =“”分别绘制线条,但是我认为这行不通,因为数据不连续
编辑:这是数据
#portfolio contains my data
portfolio<-read.table(........)
#this plots a scatter plot, however type="n" so nothing shows up
plot(portfolio$PortfolioRisk,portfolio$PortfolioReturn, xlab = "Risk", ylab
= "Return", type = "n")
curv <- loess(portfolio$PortfolioReturn~portfolio$PortfolioRisk)
lines(curv)
points(0.15,0.20, pch = 21, bg = 1)
points(0.20,0.25, pch = 21, bg = 1)
text(c(0.15,0.20), c(0.20,0.25), labels=c("B", "E"), cex=0.8, pos =1)
答案 0 :(得分:1)
您可以分别绘制两个部分。这里是一个示例,因为您没有提供数据。
curve(sqrt(x), xlim=c(0, 4), ylim=c(-4, 4), lwd=4)
curve(-sqrt(x), add=TRUE)
points(1, sqrt(1), pch=21, bg=1)
points(.5, -sqrt(.5), pch=21, bg=1)
text(c(1,.5), c(sqrt(1),-sqrt(1)), labels=c("B", "E"), cex=0.8, pos =1)
答案 1 :(得分:1)
这是一种或多或少自动执行问题要求的方法。请注意,它使用索引1:m
将向量子集化。我的第一个尝试是m:curv$n
,并得到了曲线的 lower 部分。视情况调整此解决方案。
第一条指令几乎等于问题中发布的代码。区别在于使用参数loess
的对data
的调用。
plot(portfolio$PortfolioRisk,
portfolio$PortfolioReturn,
xlab = "Risk", ylab = "Return", type = "n")
curv <- loess(PortfolioReturn ~ PortfolioRisk, data = portfolio)
现在是新零件。
m <- which.min(curv$x)
lines(curv)
lines(curv$x[1:m], curv$y[1:m], lwd = 2)
最后是使它变得漂亮的说明。
points(0.15,0.20, pch = 21, bg = 1)
points(0.20,0.25, pch = 21, bg = 1)
text(c(0.15,0.20), c(0.20,0.25), labels=c("B", "E"), cex=0.8, pos =1)