2017-02-22 5 views
1

Я делаю график плотности с ggplot в виде dataframe (datf), состоящие из нескольких команд времени series.the я использую это:Ошибки со значениями плотности участка и легендой

ggplot (melt (datf), mapping = aes (fill = variable, x = value)) + geom_density (alpha = .5)+ xlim(0,45) 

и я получаю этот график :

enter image description here есть 2 вещи неправильно, 1: lengend, очевидно, большой и показывать информацию, я не хочу, чтобы показать (я хотел бы использовать имена, хранящиеся в векторном «V») 2: Сюжет на самом деле неправильный, правильный должен показать такую ​​форму:

enter image description here Я проверил другие подобные вопросы, но я смутился о том, как дать правильную команду. как должна выглядеть правильная команда?

+1

пожалуйста, добавьте ваши данные, чтобы мы могли восстановить вашу конкретную проблему. См. [Это сообщение о воспроизводимых примерах] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) – emilliman5

+0

Я мог бы добавить весь код, но он не поможет. Я протестировал его, и перед командой построения графика все правильно, ошибка только там. мой фрейм данных (datf) - это созданный в цикле элемент привязки данных (временные ряды) списка. "h = do.call (cbind, lista)" "datf = as.data.frame (h)" –

+3

Вызов 'ggplot' _looks_ правильный, но очень сложно понять, где проблема, не имея фрагмента ваших данных. Рассмотрим 'dput (head (расплав (datf), 10))'. – bouncyball

ответ

0

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

Попробуйте

na.omit (Data)

+0

В моей петле создано 10 временных рядов (ts1, ts2, ts3, ts4, ts5, ts6, ts7, ts8, ts9, ts10), если после цикла я связываю их как k = cbind (ts1, ts2, ts3 , ts4, ts5, ts6, ts7, ts8, ts9, ts10) ## datf = as.data.frame (k), и я даю команду выше. Я получаю второй график (правильный), но если я добавлю эти временные ряды в каждом цикле как элементы списка и после цикла связывают элементы списка: h = do.call (cbind, lista) ## datf = as.data.frame (h) и дают команду построения I получить первый граф (неправильный). –

+0

Я не могу сделать это как первый вариант, потому что в реальном случае у меня гораздо больше 10 временных рядов, поэтому мне нужно работать со списком. Есть идеи? :) –

Смежные вопросы