#r #ggplot2
#r #ggplot2
Вопрос:
Я бы создал график, подобный этому, введите описание изображения здесь
но я столкнулся с проблемой: ошибка: недостаточно значений в ручном масштабе. требуется 2, но предоставляется только 1
Вот мой код
Library(ggplot2)
Library(read_xl)
df2 <- read_excel("Data122.xlsx", sheet = "sheet4")
ggplot(Data=df2)
geom_line(aes(col="COP",
x =df2$`Ground Temp T1 Tg`,
y=df2$`Daily COP`), size= 2)
theme_bw()
labs(x = "Entering source temperature EST", y = "COP")
geom_point() theme(legend.position = "top")
scale_color_manual(values=c("#FF3333"))
theme(legend.title = element_blank())
scale_y_continuous(name = "COP",
sec.axis = sec_axis(trans = ~ . *1,
name = "Produced and Consumed power MWh"))
geom_line(aes(col = "Consumed Power",
x = df2$`Ground Temp T1 Tg`,
y = df2$`Electricity MWh day`), size= 2)
**Insufficient values in manual scale. 2 needed but only 1 provided**
Комментарии:
1. Ну, вам нужно указать второй цвет
scale_color_manual
. Кроме того, удалитеdf2$
изнутриaes
. Это не требуется и может привести к неожиданным результатам.
Ответ №1:
Мне понадобился бы образец ваших данных, чтобы быть уверенным, но ваши проблемы есть scale_color_manual()
. Вы указали одно значение цвета для сопоставления с данными, но в данных для сопоставления должно быть два значения. Если вы хотите, чтобы все было такого цвета, не отображайте цвет как эстетику, просто укажите его в качестве параметра:
geom_line(aes(x =df2$`Ground Temp T1 Tg`,
y=df2$`Daily COP`), size = 2, color = "#FF3333")
Вот несколько других указаний на ваш код. В ваших aes()
сопоставлениях у вас есть df2$
. Вам это не нужно. Вся причина предоставления data =
в исходном ggplot()
вызове заключается в том, чтобы избежать этого.
geom_line(aes(x = `Ground Temp T1 Tg`,
y = `Daily COP`), size = 2, color = "#FF3333")
Ваш geom_point()
слой не имеет отображенной эстетики и не определен в ggplot()
вызове. Слои не наследуют эстетику от других слоев. На вашем графике не будет точек.