如何减少R"两个"类型图中线和点之间的填充

Kri*_*ian 6 plot r

我试图在R中绘制一系列点,我type="b"用作绘图选项.然而,在点和它们之间的线之间存在大量填充(空白空间),以至于线在某些点之间完全消失.她的照片看起来像是:

消失线条的例子

我试图通过cex绘图选项使点更小,但这没有帮助,因为它只改变点的大小而不是这些点之间的点之间的线开始和结束的位置.我不知道这是否有所作为,但我使用的符号是pch=1.

我有兴趣知道是否可以减少这种填充,以及你如何做到这一点.我对使用type=o情节选项不感兴趣.

eip*_*i10 5

您不想使用的任何特殊原因type="o"?这似乎是获得所需效果的最简单方法:

# Fake data
set.seed(10)
dfs = data.frame(x=1:10, y=rnorm(10))

plot(y~x,data=dfs, type="o", pch=21, bg='white')
Run Code Online (Sandbox Code Playgroud)

pch=21是一个类似 的圆形标记pch=1,但同时带有边框和填充。我们将填充设置为白色bg="white"以“掩盖”通过点标记的线条。

在此处输入图片说明

您还可以使用cex更改标记大小以避免重叠并使附近点之间的线可见:

set.seed(10)
dfs = data.frame(x=1:100, y=cumsum(rnorm(100)))

plot(y~x,data=dfs, type="o", pch=21, bg="white", cex=0.6)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明


42-*_*42- 3

使用名为此的数据框dfs似乎提供了一种机制,通过调整白点和黑点的“cex”值,将周围的“白色光环”调整为您想要的任何大小的点光环:

plot(y~x,data=dfs, type="l")
  with(dfs, points(x,y, pch=16,col="white",cex=1.4))
  with(dfs, points(x,y,cex=1) )
Run Code Online (Sandbox Code Playgroud)