繁体   English   中英

带有向量值的 Plot 图

[英]Plot graph with values of vectors

我想在图表中可视化我的向量的元素。 我想生成一个具有特定 x 轴和 y 轴的图,然后将我的向量的值作为点放入图中。 对于不同向量的值,我还想要不同的 colors。 我怎么做?

例如:我在向量 A 中有 10 个元素,想将这些元素放入图中。 向量 A 的第一个元素具有 y 值 A[1] 和 x 值 1。向量 A 的第二个元素具有 y 值 A[2] 和 x 值 2。与向量 B 相同。

vec1 = 1:10
vec2 = 1:10
for(idx in 1:10){
  vec1[idx] = runif(1, min=0, max=100)
  vec2[idx] = runif(1, min=0, max=100)
}
plot(vec1 and vec2) // How do I do this?

dput output for vec1: c(81.9624423747882, 45.583715592511, 56.2400584807619, 8.25600677635521, 82.0227505406365, 45.6240070518106, 68.7916911672801, 94.491201499477, 22.0095717580989, 4.29550902917981)

dput output for vec2: c(29.5684755546972, 68.0154771078378, 52.2058120695874, 2.48502977192402, 91.9532125117257, 24.7736480785534, 66.5003522532061, 79.014728218317, 47.9641782585531, 20.5593338003382)

从...开始

vec1 = 1:10
vec2 = 1:10
for(idx in 1:10){
  vec1[idx] = runif(1, min=0, max=100)
  vec2[idx] = runif(1, min=0, max=100)
}
plot(vec1 and vec2) // How do I do this?

尝试这个:

plot( 1:20, c(vec1,vec2) , col=rep(1:2,10)  # just points
lines( 1:20, c(vec1,vec2) )                 # add lines
# if you wanted the same x's for both sequences the first argument could be 
#      rep(1:10, 2)  instead of 1:20

注意:您的设置代码可能只有两行(无循环):

  vec1 = runif(10, min=0, max=100)
  vec2 = runif(10, min=0, max=100)

我认为最简单的是创建一个数据框,这通常是 R 中大多数函数所期望的:

library(tidyverse)

vec1 = 1:10
vec2 = 1:10
for(idx in 1:10){
  vec1[idx] = runif(1, min=0, max=100)
  vec2[idx] = runif(1, min=0, max=100)
}


df <- data.frame(order = 1:10, vec1, vec2) %>%
  pivot_longer(!order, names_to = "color", values_to = "value")

plot(df$order, df$value,  col = c("red","blue")[df$color %>% as.factor()])

在此处输入图像描述

我想知道或猜测您是否针对基础绘图 function 箭头提供的设施? 这是?箭头页面中的示例:

 x <- stats::runif(12); y <- stats::rnorm(12)
 i <- order(x, y); x <- x[i]; y <- y[i]
 plot(x,y, main = "arrows(.)" )
 ## draw arrows from point to point :
 s <- seq(length(x)-1)  # one shorter than data
 arrows(x[s], y[s], x[s+1], y[s+1], col = 1:3)

如果您想改为 plot ,每个向量(由“箭头”表示)从原点开始,它将是:

x <- stats::runif(12); y <- stats::rnorm(12)
# ordering not needed this time
plot(x,y, main = "arrows(.)", xlim=c(0, max(x)) # to let origin be seen)
## draw arrows from origin to point :
s <- length(x)  # one shorter than data
arrows(rep(0,s), rep(0,s), x, y, col = 1:3)

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM