r - 将序列转换为 R 中的图
问题描述
假设我有一些由 2 个数字组成的序列:
seq <- c(0, 1, 1, 1, 0, 0)
假设我想通过以下方式将其绘制成图表:
我的图 (x, y) 从 (0, 0) 开始,并且有一条直线到 (1, 0)。然后,序列开始起作用:如果数字是 0,我以 1 坐标向左转,如果数字是 1,我以 1 坐标向右转。因此,对于示例序列,我从以下内容开始:
(0, 0) -> (1, 0) -> (1, 1) -> (1, 2) -> (1, 1) -> (1, 0) etc.
如果你想清楚我所说的左转和右转是什么意思,最好画这个。
我如何将这些点纳入情节?有小费吗?
解决方案
x = c(0, 1, 1, 1, 0, 0)
m = cbind(x = c(0, 1),
y = c(0, 0))
flag_xy = 1 #Track whether to add to x- or y- coordinate
for (i in x){
flag_direction = diff(tail(m, 2)) #Track which way the line is facing
if (i == 0){
if (flag_xy == 1){
m = rbind(m, tail(m, 1) + c(0, flag_direction[,1] * 1))
} else{
m = rbind(m, tail(m, 1) + c(flag_direction[,2] * -1, 0))
}
flag_xy = flag_xy * -1
} else{
if (flag_xy == 1){
m = rbind(m, tail(m, 1) + c(0, flag_direction[,1] * -1))
} else{
m = rbind(m, tail(m, 1) + c(flag_direction[,2]* 1, 0))
}
flag_xy = flag_xy * -1
}
}
graphics.off()
plot(m, asp = 1)
lines(m)
m
# x y
# 0 0
# 1 0
#[2,] 1 1
#[2,] 2 1
#[2,] 2 0
#[2,] 1 0
#[2,] 1 -1
#[2,] 2 -1
推荐阅读
- c# - 如何使用 ADO.NET 框架从 MySql 加载我的类?
- javascript - 字符串常量和引号之间的字符串“”有什么区别?以及如何在它们之间转换?
- spring - 独立 Tomcat 的 Spring Boot 会话超时
- docker - Mattermost 凭据设置在哪里?
- string - 如何用 tcl 脚本用字符串中的前导和后置数字替换特定字符?
- json - 按数组输入值分组 json 输出
- matplotlib - 误差条可变标记大小
- reactjs - GraphQL 按数据过滤
- linux - 如何在 Bourne shell 中删除除特定文件之外的所有文件?
- android - 如何在 kotlin 中生成 json 对象?