J'ai cette image créée avec la fonction table.CalendarReturns du package PerfomanceAnalytics (les noms usuels sont les mois et les colnames sont les années):R - Comment colorer de manière conditionnelle les valeurs d'un data.frame et créer un graphique
tabRet
>
gen feb mar apr mag giu lug ago set ott nov dic System
2004 0.0 3.5 2.9 2.0 1.1 -0.4 1.2 3.3 0.9 1.8 3.0 -0.6 20.1
2005 1.6 2.3 -1.2 4.0 0.0 1.6 -1.4 2.4 0.7 2.9 2.9 0.4 17.3
2006 0.8 2.7 0.3 1.4 6.2 -2.6 2.1 2.8 0.5 0.3 0.7 3.1 19.6
2007 1.3 0.1 1.4 0.1 1.6 -1.0 1.0 1.5 -0.7 1.0 1.3 -0.7 7.0
2008 1.4 -1.2 2.2 1.2 -0.3 -0.8 2.2 0.4 1.1 0.1 4.4 -1.3 9.7
2009 4.8 3.2 1.6 3.5 0.7 1.7 2.1 2.2 2.5 1.9 1.5 2.8 32.4
2010 3.5 0.5 0.4 1.3 1.8 3.8 3.7 3.0 1.1 1.2 3.9 3.4 31.2
2011 4.3 2.1 1.6 -0.8 3.9 1.5 4.0 5.4 2.3 2.9 0.2 1.5 33.0
2012 1.1 1.9 -0.1 2.3 1.0 3.6 1.5 0.7 0.0 1.5 1.2 0.5 16.3
2013 0.8 2.5 1.2 1.4 0.0 1.7 2.3 1.7 0.5 0.2 1.3 0.6 15.1
2014 0.1 0.7 0.3 -0.7 1.0 1.0 0.2 0.9 -0.7 2.3 1.4 1.4 8.2
2015 2.3 1.0 1.1 3.1 4.5 -0.7 -0.3 2.3 2.4 0.4 -1.3 1.0 16.7
2016 2.1 2.5 0.9 1.0 0.2 NA NA NA NA NA NA NA 7.0
Je voudrais créer un terrain avec quelque chose comme cela pour les couleurs des numéros: ifelse(values< 0,'red','black')
.
J'ai essayé avec la fonction addtable2plot, du paquet plotrix avec de mauvais résultats. Des conseils sur ce problème? Merci d'avance les gars.
EDIT: je besoin de quelque chose comme ça, mais avec les nombres négatifs en rouge:
textplot(Hmisc::format.df(tabRet, na.blank=TRUE, numeric.dollar=FALSE, cdec=rep(1,dim(tabRet)[2])), rmar = 0.8, cmar = 1, max.cex=.9, halign = "center", valign = "center", row.valign="center", wrap.rownames=20, wrap.colnames=10, col.colnames="Darkblue",col.rownames="Darkblue", mar = c(0,0,4,0)+0.1) title(main="Calendar Monthly Returns",col.main="Darkblue", cex.main=1)
Utilisez ggplot (bibliothèque: 'ggplot2'). Vous pouvez créer une variable 'c <-ifelse (valeurs <0, 'a', 'b')', puis utiliser cette variable dans 'color =' dans ggplot. Voir ceci pour plus de compréhension: http://zevross.com/blog/2014/08/04/beautiful-plotting-in-ra-ggplot2-cheatsheet-3/ –
Cependant, si vous utilisez 'ggplot', vous aurez certainement besoin de remodeler vos mois en format long, voir 'tidyr :: gather' ou' reshape2 :: melt'. – Gregor
est-ce que cela me permet de tracer cette table sous cette forme? Parce que pour tracer cette table j'ai essayé: textplot (Hmisc :: format.df (tabRet, na.blank = VRAI, numeric.dollar = FAUX, cdec = rep (1, dim (tabRet) [2])), rmar = 0.8, cmar = 1, max.cex = .9, halign = "centre", valign = "centre", row.valign = "centre", wrap.rownames = 20, wrap.colnames = 10, col.colnames = "Darkblue", col.rownames = "Darkblue", mar = c (0,0,4,0) +0,1) titre (main = "Calendrier des rendements mensuels", col.main = "Darkblue", cex.main = 1) –