我试图在同一个图上绘制几组有序对,使用R.我不需要它们之间的线,因为已经通过简单的线性回归来处理.这是一些示例代码:
sw_sd <- c(0, 20)
sw_r <- c(5, 10)
aa_sd <- c(0, 16)
aa_r <- c(5, 8)
png("5-airline-cals.png")
plot.new()
plot.window(xlim=c(0,25), ylim=c(0,12))
plot(c(aa_sd, aa_r))
plot(sw_sd,sw_r, pch=22, main="Capital Allocation Lines", xlab="Standard Deviation", ylab="Expected Return")
sw_cal=lm(sw_r~sw_sd)
aa_cal=lm(aa_r~aa_sd)
abline(sw_cal, col="forestgreen", lwd=3)
abline(aa_cal, col="blue", lwd=3)
legend(1, 9, c("Southwest Airlines","American Airlines"), cex=0.8, col=c("forestgreen","blue"), lwd=3);
box()
dev.off()
Run Code Online (Sandbox Code Playgroud)
该sd对是x坐标,r是y坐标.我在同一散点图上需要两组xy对.这是简化的数据,但你明白了.
对不起RTFM评论的驱动器.这里有一些更详细的信息.
使用基本图形,我会通过以下方式完成您正在做的事情:
plot(c(sw_sd,aa_sd),c(sw_r,aa_r), pch = 22,
col = rep(c('forestgreen','blue'),each = 2),main="Capital Allocation Lines",
xlab="Standard Deviation", ylab="Expected Return")
abline(lm(sw_r~sw_sd),col = 'forestgreen',lwd = 3)
abline(lm(aa_r~aa_sd),col = 'blue',lwd = 3)
Run Code Online (Sandbox Code Playgroud)
我之所以提到的points和lines是因为你是问如何绘制在同一张图多组点.在R基本图形的一般策略是你初始化到一个呼叫的情节plot,然后您添加使用之类的东西给它points,lines,abline等.
您对通话plot.new和plot.window是不是真的有必要; 如果你只是从R开始,你可能暂时不需要使用它们,真的.
通常,每次拨打电话时plot,R都会启动一个新的绘图设备.因此,您的重复呼叫plot只会重新开始并重新开始.您会注意到您的结果图最终没有y轴限制为0到12.这是因为每次plot重新调用时,您都是从头开始,就像之前的命令从未发生过一样.这也是为什么没有出现其他一组点的原因.
最后,阅读的建议?plot有点误导,因为?plot.default对初学者来说真的有点信息.它有很少的块,比如能够直接传递x和y轴限制,传递type = "n"以创建一个具有正确尺寸的空图,然后可以添加,等等.
| 归档时间: |
|
| 查看次数: |
10009 次 |
| 最近记录: |