R中的性能集群映射

时间:2014-01-20 11:58:41

标签: r ggplot2 treemap quantitative-finance

我从WSJ找到了关于S& P500性能的非常吸引人的图表:

http://s.wsj.net/public/resources/images/MI-CA398B_STOCK_G_20131230184809.jpg

我正在尝试在R中重新创建它,但我不知道如何最好地绘制数据,例如

data<-data.frame(stock=c("A","B","C","D"),group=c(rep("Fin",2),rep("Ind",2)),Perf=rnorm(4,0,1),mvalue=abs(rnorm(4,100,50)))

有人知道如何重新创建它(例如使用ggplot2吗?)或者有没有人做过类似的情节? Thx提前。

3 个答案:

答案 0 :(得分:3)

treemapify是一个ggplot2解决方案,正如您所希望的那样。

https://github.com/wilkox/treemapify

结果很漂亮&amp;灵活 - 典型的ggplot2及其扩展。

enter image description here

答案 1 :(得分:2)

您正在寻找treemap

require(treemap)
treemap(data,c("group","stock"),"mvalue",vColor="Perf",type="value")

enter image description here

treemap包中的这个示例也很有用:

data(GNI2010)
treemap(GNI2010,
        index=c("continent", "iso3"),
        vSize="population",
        vColor="GNI",
        type="value")

使用搜索词“treemap”,您可以找到更多信息,例如http://en.wikipedia.org/wiki/Treemap

答案 2 :(得分:2)

portfolio

require(portfolio)

dt<-data.frame(ticker=paste0(sample(LETTERS,100,T),sample(LETTERS,100,T),sample(LETTERS,100,T)),
           value=abs(rnorm(100,10000,4000)),
           perc_change=rnorm(100,0,0.1),
           group=sample(LETTERS[1:4],100,T)
               )

rownames(dt)

map.market(dt$ticker,lab=c(T,T), area=dt$value, group=dt$group, color=dt$perc_change, main="Stock Map")

enter image description here