r - 在 R 中按顺序切割的画线
问题描述
我有一个脚本可以在 R 的图中绘制线段。
# Make data
max = 10
y0 = rep(0,max)
x = 1:max
y = rep(1,max)/1:max
df = data.frame(x,y,y0)
plot(y ~ x,
ylim = c(0,max(y)), type = "n")
segments(x0 = df$x, y0 = df$y0, x1 = df$x,y1 = y, lend =2)
# Draw the capping lines
eps = .1
segments(x0 = df$x-eps, y0 = df$y0,
x1 = df$x+eps, y1 = df$y0, lend =2)
segments(x0 = df$x-eps, y0 = df$y,
x1 = df$x+eps, y1 = df$y, lend =2)
但我想用分隔符分隔行。结果看起来像这样(之后添加了红线,但我希望它们是黑色的。)
你看到的是每一行都是按顺序分开的:第一行没有分开,第二行分成两半,第三行分成三分之二等。
我意识到的问题是我需要 for 循环中的 for 循环等,这似乎不是一个好的解决方案。
我想知道是否expand.grid
可以用于那个。
解决方案
对于循环解决方案中的循环,我不明白为什么不这样做 - 它可以工作并且它没有进行一些疯狂的大型计算:
k <- 10
plot(x = c(0,k), y = c(0,1), typ = "n")
for(i in 1:k){
points(x = c(i,i), y = c(0,1), typ = "l")
for(j in 1:(i+1)){
points(x = c(i-0.1,i+0.1), y = c(seq(0,1,1/i)[j], seq(0,1,1/i) [j]), typ = "l")
}
}
推荐阅读
- scala - 在 SPARK 数据框中,我想 groupBy,然后 orderBY 并且它们连接另一列的行
- c++ - Why the C++ code couldn't display bitmap?(code from textbook)
- javascript - 用于更大传输的 Nodejs 套接字发射
- java - 如何在editText中放置一个按钮
- ruby - Stripe 在 macbook localhost 上失败,但在 iMac localhost 上工作
- python - 从请求正文 django 访问数据
- android - VectorDrawable 以像素显示
- javascript - Query.formatError 的“where 子句”中的未知列“users.email”
- c# - 实体查询中的 If Else 语句
- gitlab - Gitlab问题-可以自动创建吗