Я написал сценарий ggplot, скомпилированного из двух отдельных фреймов данных, но в его нынешнем виде легенды нет, поскольку цвета не включены в aes. Я бы предпочел разделить два набора данных, если это возможно, но не могу понять, как добавить легенду. Есть мысли?
Я пытался добавить цвета непосредственно в функцию AES, но затем цвета просто добавляются как переменные и отображаются в легенде, а не окрашивают фактические данные.
Построение этого с помощью базы r, после создания графика я бы использовал:
legend("top",c("Delta 18O","Delta 13C"),fill=c("red","blue")
и получил то, что мне было нужно, но я не уверен, как воспроизвести это в ggplot.
Следующий код в настоящее время отображает именно то, что я хочу, он просто пропускает легенду ... которая в идеале должна совпадать с тем, что будет выглядеть в приведенной выше строке, за исключением того, что "18" и "13" должны иметь верхний индекс.
Примеры старого графика, использующего базу r (с правильной легендой, за исключением отсутствия надстрочных знаков 13 и 18) и текущего графика, в котором отсутствует легенда, можно найти здесь: Старый: https://imgur.com/xgd9e9C Новый, отсутствующая легенда: https://imgur.com/eGRhUzf
Фоновые данные
head(avar.data.x)
time av error
1 1.015223 0.030233604 0.003726832
2 2.030445 0.014819145 0.005270609
3 3.045668 0.010054801 0.006455241
4 4.060891 0.007477541 0.007453974
5 5.076113 0.006178282 0.008333912
6 6.091336 0.004949045 0.009129470
head(avar.data.y)
time av error
1 1.015223 0.06810001 0.003726832
2 2.030445 0.03408136 0.005270609
3 3.045668 0.02313839 0.006455241
4 4.060891 0.01737148 0.007453974
5 5.076113 0.01405144 0.008333912
6 6.091336 0.01172788 0.009129470
Следующая функция avarn создает фрейм данных с тремя столбцами и несколькими тысячами строк (см. Заголовок выше). Затем они с течением времени отображаются на графике / логарифмическом графике.
avar.data.x <- avarn(data3$"d Intl. Std:d 13C VPDB - Value",frequency)
avar.data.y <- avarn(data3$"d Intl. Std:d 18O VPDB-CO2 - Value",frequency)
Создание графика отклонения Аллана
ggplot()+
geom_line(data=avar.data.y,aes(x=time,y=sqrt(av)),color="red")+
geom_line(data=avar.data.x,aes(x=time,y=sqrt(av)),color="blue")+
scale_x_log10()+
scale_y_log10()+
labs(x=expression(paste("Averaging Time ",tau," (seconds)")),y="Allan Deviation (per mil)")
Приведенный выше графикотсутствует только легенда, показывающая название двух построенных наборов данных и их соответствующие цвета. Мне бы хотелось, чтобы легенда находилась в центре верхней части графика.
Как надписать заголовки легенды?:
ggplot()+
geom_line(data=avar.data.y,aes(x=time,y=sqrt(av),
color =expression(paste("Delta ",18^,"O"))))+
geom_line(data=avar.data.xmod,aes(x=time,y=sqrt(av),
color=expression(paste("Delta ",13^,"C"))))+
scale_color_manual(values = c("blue", "red"),name=NULL) +
scale_x_log10()+
scale_y_log10()+
labs(
x=expression(paste("Averaging Time ",tau," (seconds)")),
y="Allan Deviation (per mil)") +
theme(legend.position = c(0.5, 0.9))