R ggplot2 introduire un léger lissage à une ligne graphique avec seulement quelques points de données
Ne sais pas si c'est une question de programmation ou pas...
Si j'ai les données ci-dessous, qui produit un épi' graphique, et j'aimerais produire un peu lissés en un à l'aide de ggplot2 comment dois-je faire plus d'élégance. L'habitude de lissage des méthodes retirer trop d'informations. Une façon que j'envisage est d'interpoler un supplément de deux points de données entre le jeu et ensuite prendre un 2 moyenne mobile de période ou de quelque chose. Cela ressemble à beaucoup de travail dur à coder manuellement donc je vais prendre une réponse qui automatise avec élégance que comme un dernier recours.
a=data.frame(year=paste('FY',2001:2012,sep='.'),values=rnorm(12))
library(ggplot2)
Comme vous pouvez le voir c'est hérissé de pointes et visuellement attrayant
ggplot(a,aes(x=year,y=values,group=1))+geom_line()
Et cela enlève beaucoup trop d'informations à partir du graphique
ggplot(a,aes(x=year,y=values,group=1))+stat_smooth(se=F)
Grâce
OriginalL'auteur Tahnoon Pasha | 2013-05-28
Vous devez vous connecter pour publier un commentaire.
Vous pouvez essayer un polynôme. Depuis l'axe des x de la variable a 12 valeurs uniques, vous pouvez utiliser les polynômes jusqu'à la 11e degré. En outre, vous devez utiliser un continue de l'échelle pour l'axe des x pour obtenir une courbe lisse.
Voici un exemple d'un 8e ordre polynôme:
Ici,
method = "lm"
signifie qu'un modèle linéaire est utilisée. Le deuxième argument de lapoly
fonction spécifie le degré.Une très belle approche. Dans mon cas, je veux faire la même chose mais mon polynôme ne peut pas donner des valeurs négatives. Est-il possible de mettre une limite inférieure sur stat_smooth? Merci
Vous ne pouvez pas spécifier une limite dans
stat_smooth
. Vous devriez trouver un certain fonction de lissage de vos données qui peut être utilisé dansstat_smooth
.Souhaitez-vous recommandons également de passer de
scale_x_date
àscale_x_continuous
pour faire une ligne plus fluide en cas de valeurs mensuelles?Il dépend de vos préférences. Il n'y a rien de mal avec un classique de l'échelle continue lorsque les données sont nécessaires.
OriginalL'auteur Sven Hohenstein
Si vous voulez éviter de perdre trop d'informations à partir des données ci-dessous pourrait être une meilleure approche, qui fonctionne bien pour les grands ensembles de données:
Ici est un meilleur exemple:
OriginalL'auteur Ali