LINUX.ORG.RU

Построение графиков в R с помощью ggplot2

 ,


0

4

Всем доброго времени суток!
Не так давно, мною был задан вопрос На чём обрабатывать экспериментальные данные в GNU/linux
Среди множества вариантов мне приглянулась связка R + ggplot2.
Если с самим R серьёзных проблем не возникло, то с ggplot2 вызвал серьёзные проблемы. После многих часов поиска я научился выводить несколько графиков, но остался ряд проблем:

  • Как раздельно задавать цвета графикам и текст в легенде(а то получается зелёный график говорит не то что он раствор номер один, а то, что он зелёный график)
  • Как насильно изменить подпись к осям координат

В поих мечтах это выглядит следующим образом:

  • Описал сетку и оси координат
  • Добавил график 1 с указанием цвета, стиля и текста легенды
  • Добавил график N с указанием цвета, стиля и текста легенды

Был бы очень рад примеру.
Всем заранее спасибо за ответы. :)

★★

Последнее исправление: Ramzes001 (всего исправлений: 1)

1) Если поискать, то можно найти книжку Викхама и бесплатно. (а так на его сайте тонны примеров).

2) Если нужен конкретный ответ, то пишешь код который у тебя не получилось написать и тебе его поправят (или укажут на работающий вариант).

psv1967 ★★★★★
()
Ответ на: комментарий от psv1967

Пишу:

> p <- geom_line(data = DD, aes(x=WL,y=N1, colour = "green"))
> p + geom_line(data = DD, aes(x=WL,y=N2, colour = "red"))
Хочется что бы стало два графика разных цветов, а получаются ошибки при втором случае, а график такой: внешняя ссылка

Ramzes001 ★★
() автор топика
Ответ на: комментарий от psv1967

Ой, я забыл. Делаю так:

p <- ggplot() + geom_line(data = DD, aes(x=WL,y=N1, colour = "green")) + geom_line(data = DD, aes(x=WL,y=N2, colour = "red"))
Получилось.
Остаётся ещё пару вещей которые я не знаю как сделать:

  • Как в ручную задать текст в легенде
  • Как изменить названия осей
Ramzes001 ★★
() автор топика
Ответ на: комментарий от unikum

Спасибо :)
Почитал, поковырял, вышло :)
Если кому ни будь понадобится:

p <- ggplot() + 
  geom_line(data = TT, aes(x=WL,y=T1, colour = "N1")) +
  geom_line(data = TT, aes(x=WL,y=T2, colour = "N2")) +
  geom_line(data = TT, aes(x=WL,y=T3_10, colour = "N3(10мм)")) +
  geom_line(data = TT, aes(x=WL,y=T3_5, colour = "N3(5мм)")) +
  labs(x = "Длина волны, нм", y = "Коэффициент", colour = "Жидкость") +
  scale_colour_manual(values=c("#999999", "#E69F00", "#56B4E9", "#12E12A"))

Ramzes001 ★★
() автор топика
Ответ на: комментарий от Ramzes001

У тебя похоже данные в широком формате, если преобразовать в длинный, то код графика будет гораздо компактнее.

Почитай по reshape2::melt - для преобразования формата данных. В ggplot2 аргументы fill, group, colour.

http://www.cookbook-r.com/Manipulating_data/Converting_data_between_wide_and_...

unikum ★★★★★
()
Ответ на: комментарий от unikum

да, длинный формат (а фактически OLAP) основная фишка

psv1967 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.