R Как сделать более плавно выглядящие графики колебаний - PullRequest
1 голос
/ 01 апреля 2011

При построении графика колебаний в R, например, используя пакет desolve,

df1 <-function(t,y,mu)( list(c(y[2],mu*y[1]^3-y[1]+0.005*cos(t))))
library (deSolve)
yini<-c(y1=0,y2=0)
df2 <-ode(y=yini,func=df1, times=0:520,parms=0.1667)
plot(df2,type="l",which="y1",ylab="Displacement",xlab="Time", main="")

я получаю рваные графики, такие как:

raggedy plot in R

вместогладкий график (не выполняется в R), такой как:

smooth plot not in R

Кто-нибудь знает способ получения более плавного графика в R вместо рваного при отображении колебаний?Обратите внимание, что дело не только в разнице в масштабе, и я не ищу сглаживающий фильтр.

Спасибо,

1 Ответ

7 голосов
/ 01 апреля 2011

Я сгенерировал ваш график в R и экспортировал его в PDF.Я увеличил масштаб изображения, и это довольно мило.Я не вижу проблемы, о которой ты говоришь.Поэтому есть некоторые проблемы с масштабированием или что-то с растровым форматом, которые вызывают проблему.Возможно, вы вставляете в Word, и это дает вам плохое растровое изображение.Сюжет, который R создает на логическом уровне, великолепен, несмотря на тот, который вы опубликовали.Это даже лучше, чем построенный вами график сравнения.

Возможно, вы генерируете график в растровом формате и не устанавливаете достаточно высокое разрешение и размер.Попробуйте tiff ('filname', 1200, 1200, 300), чтобы получить хорошее растровое изображение.Я заметил, что при экспорте в растровые форматы было легко превратить ваш сюжет в мелкий беспорядок с настройками по умолчанию png или jpg, которые просто размазывают вещи.

Может быть, вы действительно хотели сэмплировать в своей функции с более высоким разрешением, чего-то не сделанного на графике сравнения.Если это так, то это относительно просто.Измените 0: 520 на seq (0, 520, 0,1).Это еще более приятный график, как показано ниже (гораздо лучше, чем в PDF, EPS или SVG).

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...