[英]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')
很好,除了我希望线条有更大的水平延伸——让我们说“更宽的线条”。 使用一串连字符pch='----'
不会产生更宽的行。
我可以用不同的cex
固定它们的宽度:
matplot(x=1:15, y=data, type='p', pch='-', cex=5, col='black')
有我想要的宽度,但现在线条太粗了。
我想知道是否有一种方法可以分别选择 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')
}
但我想知道是否有更优雅的解决方案。
两个快速的想法。
找到一种带有非常长的“破折号”或“下划线”字符的字体并使用它。
这会很慢,但是用两个点 {xk,y},{x+k,y} 替换数据集中的每个有序对 {x,y} 并分别在每对之间绘制线。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.