如何在散点图上通过两点添加一条线并删除轴刻度?
How to add a line through two points on scatter plot and remove axis scales?
我有以下数据:
> dput(all_data)
structure(list(X = structure(1:8, .Label = c("DMU 1", "DMU 2",
"DMU 3", "DMU 4", "DMU 5", "DMU 6", "DMU 7", "DMU 8"), class = "factor"),
x = c(7L, 13L, 7L, 18L, 12L, 14L, 10L, 16L), y = c(7L, 5L,
3L, 5L, 9L, 14L, 3L, 10L)), .Names = c("X", "x", "y"), class = "data.frame", row.names = c(NA,
-8L))
以及下图:
plot(all_data[,2], all_data[,3], ylim = c(0, 20), xlim = c(0,20),
xlab = "Input", ylab = "Output")
text(all_data[,2], all_data[,3], labels = all_data[,1], cex = 0.7, pos = 4)
我正在尝试不抄袭地复制这张图:
已经足够接近了,但我在添加通过 DMU 1 和 DMU 6 点的线时遇到问题。
我还想删除轴刻度,因为该图仅用于概念的图形表示,不测量任何内容。
任何其他可能有助于在美学上改进它的添加都将受到赞赏。
这几乎可以满足您的需求。您可以根据需要更改 color
、linetype
或 abline()
。感谢@thelatemail,我已经编辑了子集和拟合线性模型的方法。
plot(all_data[,2], all_data[,3], ylim = c(0, 20), xlim = c(0,20), xlab = "Input", ylab = "Output", xaxt='n', yaxt='n')
text(all_data[,2], all_data[,3], labels = all_data[,1], cex = 0.7, pos = 4)
abline(lm(y~x, data=all_data, subset=X %in% c("DMU 1","DMU 6") ))
arrows(x0=5, y0=15, x1 = 10, y1 = 10, length = 0.10, angle = 20,
code = 2, col = par("fg"), lty = par("lty"),
lwd = par("lwd"))
text(6, 15.5, "Efficient Frontier", cex = .8)
all_data <- structure(list(X = structure(1:8, .Label = c("DMU 1", "DMU 2","DMU 3", "DMU 4", "DMU 5", "DMU 6", "DMU 7", "DMU 8"), class = "factor"),
x = c(7L, 13L, 7L, 18L, 12L, 14L, 10L, 16L),
y = c(7L, 5L, 3L, 5L, 9L, 14L, 3L, 10L)),
.Names = c("X", "x", "y"),
class = "data.frame", row.names = c(NA,-8L))
with(all_data, {
par(family = 'serif')
plot(x, y, xlim = c(0,20), ylim = c(0,20), pch = 16, bty = 'l',
xaxt = 'n', yaxt = 'n', ann = FALSE)
text(x, y, labels = parse(text = gsub('(....)(.)', 'italic(\1[\2])', X)),
adj = c(0, 1.5))
abline(0, 1, lty = 2)
p <- par('usr')
text(c(p[1], p[2], 10), c(p[4], p[3], p[4]), xpd = NA, adj = c(1.5, 1.5),
labels = c('output','input', 'Efficient frontier'))
arrows(7, 18, 10, 11, length = .1)
mtext('Figure 1: Efficient frontier - CCR model.', font = 3,
side = 1, line = 3, at = 2)
})
我有以下数据:
> dput(all_data)
structure(list(X = structure(1:8, .Label = c("DMU 1", "DMU 2",
"DMU 3", "DMU 4", "DMU 5", "DMU 6", "DMU 7", "DMU 8"), class = "factor"),
x = c(7L, 13L, 7L, 18L, 12L, 14L, 10L, 16L), y = c(7L, 5L,
3L, 5L, 9L, 14L, 3L, 10L)), .Names = c("X", "x", "y"), class = "data.frame", row.names = c(NA,
-8L))
以及下图:
plot(all_data[,2], all_data[,3], ylim = c(0, 20), xlim = c(0,20),
xlab = "Input", ylab = "Output")
text(all_data[,2], all_data[,3], labels = all_data[,1], cex = 0.7, pos = 4)
我正在尝试不抄袭地复制这张图:
已经足够接近了,但我在添加通过 DMU 1 和 DMU 6 点的线时遇到问题。
我还想删除轴刻度,因为该图仅用于概念的图形表示,不测量任何内容。 任何其他可能有助于在美学上改进它的添加都将受到赞赏。
这几乎可以满足您的需求。您可以根据需要更改 color
、linetype
或 abline()
。感谢@thelatemail,我已经编辑了子集和拟合线性模型的方法。
plot(all_data[,2], all_data[,3], ylim = c(0, 20), xlim = c(0,20), xlab = "Input", ylab = "Output", xaxt='n', yaxt='n')
text(all_data[,2], all_data[,3], labels = all_data[,1], cex = 0.7, pos = 4)
abline(lm(y~x, data=all_data, subset=X %in% c("DMU 1","DMU 6") ))
arrows(x0=5, y0=15, x1 = 10, y1 = 10, length = 0.10, angle = 20,
code = 2, col = par("fg"), lty = par("lty"),
lwd = par("lwd"))
text(6, 15.5, "Efficient Frontier", cex = .8)
all_data <- structure(list(X = structure(1:8, .Label = c("DMU 1", "DMU 2","DMU 3", "DMU 4", "DMU 5", "DMU 6", "DMU 7", "DMU 8"), class = "factor"),
x = c(7L, 13L, 7L, 18L, 12L, 14L, 10L, 16L),
y = c(7L, 5L, 3L, 5L, 9L, 14L, 3L, 10L)),
.Names = c("X", "x", "y"),
class = "data.frame", row.names = c(NA,-8L))
with(all_data, {
par(family = 'serif')
plot(x, y, xlim = c(0,20), ylim = c(0,20), pch = 16, bty = 'l',
xaxt = 'n', yaxt = 'n', ann = FALSE)
text(x, y, labels = parse(text = gsub('(....)(.)', 'italic(\1[\2])', X)),
adj = c(0, 1.5))
abline(0, 1, lty = 2)
p <- par('usr')
text(c(p[1], p[2], 10), c(p[4], p[3], p[4]), xpd = NA, adj = c(1.5, 1.5),
labels = c('output','input', 'Efficient frontier'))
arrows(7, 18, 10, 11, length = .1)
mtext('Figure 1: Efficient frontier - CCR model.', font = 3,
side = 1, line = 3, at = 2)
})