Изменение типа линии в отдельной легенде для нескольких строк - PullRequest
0 голосов
/ 30 сентября 2019

Я пытаюсь воспроизвести следующую легенду:

enter image description here

Я сделал это с помощью следующего воспроизводимого примера:

names <- c('Africa', 'Asia', 'Europe', 'North America', 'Oceania', 'South America')
linetypes <- c('1', '2', '3', '4', '5', '6')
ltypes <- c(1:6)

legend <- plot(NULL ,xaxt='n',yaxt='n',bty='n',ylab='',xlab='', xlim=0:1, ylim=0:1)
legend("topleft", title="Continent", legend = names, lty=ltypes, lwd=2, cex=1.25, bty='n')
legend

Создается следующая легенда:

enter image description here

Кажется, что типы линий не совпадают для Европы, Океании иЯ не уверен насчет Северной Америки и Южной Америки.

Как вы можете видеть в моем коде, я экспериментировал с

linetypes <- c('1', '2', '3', '4', '5', '6')
, lty=linetypes 

безуспешно, и я также попытался:

linetypes <- c(1, 2, 3, 4, 5, 6)
, lty = linetypes

, который не работал. Есть что-то, что я пропускаю или неправильно заказываю?

Редактировать:

Я получил первую легенду с помощью команды ggplot со следующим кодом (к сожалению, я не могу сделать это воспроизводимым с данными):

maize2 <- read_csv("maize2.csv")
Maize_by_yearContinent = maize2 %>% group_by(Year,ContinentName) %>% summarise(avgMaizeYield = mean(Yield))
Maize_by_yearContinent[is.na(Maize_by_yearContinent)] <- 0

maizePlot = ggplot(Maize_by_yearContinent,aes(x=Year,y=avgMaizeYield,linetype = ContinentName)) + geom_line(size=1)  + expand_limits(y=0) + ggtitle("Maize") + ylab(bquote('Average Yield ( '*'ton'~ ha^-1*')'))

enter image description here

1 Ответ

0 голосов
/ 30 сентября 2019

Я не думаю, что именно нужные вам типы линий доступны в R, проверьте эту ссылку, чтобы посмотреть, как они выглядят http://www.sthda.com/english/wiki/line-types-in-r-lty

...