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

我正在尝试在 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?)或者有没有人做过类似的情节?提前谢谢。
我发现这张来自《华尔街日报》的关于标准普尔 500 指数表现的图表非常吸引人:

我正在尝试在 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?)或者有没有人做过类似的情节?提前谢谢。
treemapify正如您所希望的那样,是一个 ggplot2 解决方案。
https://github.com/wilkox/treemapify
结果既漂亮又灵活——典型的 ggplot2 及其扩展。
您正在寻找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
或者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")
