ggplot - контроль ширины линии в точках - PullRequest
0 голосов
/ 10 мая 2018

У меня есть следующие данные:

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 голосов
/ 10 мая 2018

Одним из возможных решений может быть фильтрация нулевых значений.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...