ggplot - 以磅为单位控制线宽

时间:2018-05-10 01:02:58

标签: r plot ggplot2 width

我有以下数据:

d = data.frame(x=rnorm(100), y=rnorm(100), w=sample(c(0,1,2), 100, replace=T))

我想绘制这些数据,因此每行的宽度由d $ w给出(理想情况下以“pt”为单位)。但是,我在使用ggplot时遇到了麻烦。事实上,即使d $ w为零,ggplot仍然会画一条线:

ggplot(d, aes(x=x,y=y)) + geom_line(aes(size=w)) + scale_size_continuous(range=c(0,2))

有关如何解决此问题的任何想法?我知道我可以用NA取代零,但我更关心的是规模本身是不正确的。有没有办法制作线宽以有意义的固定单位测量的图?

1 个答案:

答案 0 :(得分:0)

一种可能的解决方案是过滤零值。

library(dplyr)
library(ggplot2)
d = data.frame(x=rnorm(100), y=rnorm(100), w=sample(c(0,1,2), 100, replace=T))

ggplot(d %>%
         filter(w>0), aes(x=x,y=y)) + 
  geom_line(aes(size=w)) + 
  scale_size_continuous(range=c(0,2))

Plot