Я прочитал много вопросов здесь и в Google о легендах в ggplot. Однако я до сих пор не могу понять, почему следующий код создает две разные легенды и как управлять ими по отдельности.

В основном мне нужно отформатировать текст слева, потому что он дает правильные визуальные эффекты о типах линий и удалить тот, что справа.

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

P.S. До моей попытки отформатировать легенду второй даже не существовало.

Если их еще нет, эти пакеты необходимо установить.

install.packages(ggplot2)
install.packages(reshape2)
install.packages(scales)

Теперь код.

library(ggplot2)
library(reshape2)
library(scales)

data(economics)
dataset <- economics[, c("date", "psavert", "uempmed")]
dataset <- melt(dataset, id = "date")

ch <- ggplot(data=dataset, aes(x=date, y=value, group = variable ))+
  geom_line(aes(linetype=variable, color=variable))+
  scale_linetype_manual(values=c("solid", "longdash"))+
  scale_color_manual(values=c('#005493','#666666'), labels = c("Personal savings rate (%)", "Median 
duration of unemployment (weeks)"))+
  theme(legend.position="bottom" , plot.title = element_text(face = "bold", size = (14), colour = 
"#9E0010"),
    axis.title.y = element_text(size = (12), face = "italic"))+
  labs( title= "Pointless economic plot", y="Value", x=" ", colour= "Indicator")

print(ch)

Image Output Here

2
Ozgur Polat 2 Ноя 2019 в 20:46

2 ответа

Похоже, добавив ,guide=FALSE к вашему scale_linetype_manual, вы это сделаете.

#install.packages(ggplot2)
library(ggplot2)
#install.packages(reshape2)
library(reshape2)
#install.packages(scales)
library(scales)
data(economics)
dataset <- economics[, c("date", "psavert", "uempmed")]
dataset <- melt(dataset, id = "date")

ch <- ggplot(data=dataset, aes(x=date, y=value, group = variable ))+
  geom_line(aes(linetype=variable, color=variable))+
  scale_linetype_manual(values=c("solid", "longdash"), guide = FALSE)+
  scale_color_manual(values=c('#005493','#666666'), labels = c("Personal savings rate (%)", "Median 
                                                               duration of unemployment (weeks)"))+
  theme(legend.position="bottom" , plot.title = element_text(face = "bold", size = (14), colour =   "#9E0010"),
        axis.title.y = element_text(size = (12), face = "italic"))+
  labs( title= "Pointless economic plot", y="Value", x=" ", colour= "Indicator") 


Создано в 2019-11-02 с помощью пакетаprex (v0.3.0)

2
phiggins 2 Ноя 2019 в 21:12

При этом удаляется цветовая легенда и добавляются цвета к легенде типа линий. Он также изменяет заголовок легенды на My title, делает его больше и краснее, а текст легенды - синим и жирным.

ch + 
  guides(color = FALSE, 
         linetype = guide_legend(
                      title = element_text("My title"), 
                      override.aes = list(color = c('#005493', '#666666')))) +
  theme(legend.text = element_text(color="blue", size = 16, face = "bold"),
        legend.title = element_text(color = "red", size = 16))

screenshot

2
G. Grothendieck 2 Ноя 2019 в 22:41