Как увеличить символы легенды без наложения фигуры - PullRequest
0 голосов
/ 01 мая 2019

Я делаю сюжет для блестящего приложения, и мне нужно увеличить размер символа в легенде ggplot. У меня есть несколько эстетик (форма и цвет), которые в зависимости от некоторых условий должны быть объединены в одну легенду или разделены на две легенды.

Я пытался использовать:

guides(shape = guide_legend(override.aes = list(size = 3))

но это отменяет все различные формы.

В зависимости от моего начального состояния, мой df может быть таким, как показано ниже

print(dt)
        xAll yAll factors groupVar colVar shapeVar
16.30% 33.95 16.3   30:20    30:20  30:20    30:20
16.50% 35.06 16.5   30:20    30:20  30:20    30:20
16.60% 35.84 16.6   40:20    40:20  40:20    40:20
16.90% 36.50 16.9   40:20    40:20  40:20    40:20
17.50% 37.39 17.5   40:20    40:20  40:20    40:20

или как этот:

print(dt)
         xAll yAll       factors groupVar colVar shapeVar
16.30% 33.95 16.3 30:20_0.56_NA     0.56   0.56    30:20
16.50% 35.06 16.5 30:20_0.54_NA     0.54   0.54    30:20
16.60% 35.84 16.6 30:20_0.52_NA     0.52   0.52    40:20
16.90% 36.50 16.9  30:20_0.5_NA      0.5    0.5    40:20
17.50% 37.39 17.5 30:20_0.48_NA     0.48   0.48    40:20

Вот код моего сюжета:

ggplot(data.frame(dt)) + 
geom_line(aes(xAll,yAll,group=groupVar, col=colVar)) +
geom_point(aes(xAll,yAll,group=groupVar, col=colVar, shape=shapeVar, size=5)) +
  scale_size_continuous(guide='none') +
  {if(any(shape==col)) labs(shape="HS", colour="HS") else labs(shape="HS", colour="SPR")} 

Результат для первого dt без (слева) и с (справа) override.aes ​​ выглядит следующим образом:

enter image description here

Результат для второго dt без (слева) и с (справа) override.aes ​​ выглядит следующим образом: enter image description here

Символы в легенде выглядят очень маленькими, и я хотел бы увеличить их, независимо от того, что находится в легенде, сохраняя первоначальную форму и цвет.

Любая помощь очень ценится.

Спасибо

Piera

1 Ответ

0 голосов
/ 08 мая 2019

Я решил это, просто изменив размер общей эстетики сюжета.

geom_point(aes(xAll,yAll,group=groupVar, col=colVar, shape=shapeVar), size=5)

Не идеально, потому что это также увеличивает размер точек на графике, но я нашел компромисс между ними.

P

...