4

我发现这张来自《华尔街日报》的关于标准普尔 500 指数表现的图表非常吸引人:

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?)或者有没有人做过类似的情节?提前谢谢。

4

3 回答 3

3

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

https://github.com/wilkox/treemapify

结果既漂亮又灵活——典型的 ggplot2 及其扩展。

在此处输入图像描述

于 2016-05-10T14:43:59.867 回答
2

您正在寻找treemap

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

在此处输入图像描述

包中的这个例子treemap也很有帮助:

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

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

于 2014-01-20T12:30:02.153 回答
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")

在此处输入图像描述

于 2014-01-20T12:38:07.620 回答