繁体   English   中英

以小线为标记的点图 - 如何获得细线但延长线?

[英]Point-plot with small lines as markers - how to obtain thin but extended lines?

我想将几个数字序列绘制为点图,但标记是线而不是点。 一种方法是使用pch='-'

## example 10 sequences, each with 15 values
data <- t(sapply(1:15, function(x){rnorm(n=10, mean=x)}))

matplot(x=1:15, y=data, type='p', pch='-', cex=1, col='black')

结果: cex=1 绘图

很好,除了我希望线条有更大的水平延伸——让我们说“更宽的线条”。 使用一串连字符pch='----'不会产生更宽的行。

我可以用不同的cex固定它们的宽度:

matplot(x=1:15, y=data, type='p', pch='-', cex=5, col='black')

结果: cex=5 绘图

有我想要的宽度,但现在线条太粗了。

我想知道是否有一种方法可以分别选择 x 和 y 方向上标记的放大倍数,或者以不同的方式获得所需的结果。

编辑:

一种可能的解决方案是将多个相同数据的副本并排放置,x 增量较小:

matplot(x=1:15, y=data, type='p', pch='-', cex=1, col='black')
for(dx in seq(-0.3, 0.3, by=0.1)){
    matpoints(x=(1:15)+dx, y=data, type='p', pch='-', cex=1, col='black')
}

结果或多或少如我所愿: 情节序列

但我想知道是否有更优雅的解决方案。

两个快速的想法。

  1. 找到一种带有非常长的“破折号”或“下划线”字符的字体并使用它。

  2. 这会很慢,但是用两个点 {xk,y},{x+k,y} 替换数据集中的每个有序对 {x,y} 并分别在每对之间绘制线。

暂无
暂无

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

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