2015-12-02 21 views
2

当我运行这个编程代码时,我会得到这个错误“ggfluctuation is deprecated。(defunct; last used in version 0.9.1)”。 1我如何解决这个问题? 2 - 在我的原始数据集中,我有两个字符串变量,其级别过多(第一个变量有65个级别,第二个变量有8个级别),我可以为这两个变量分配Heatmap表格吗? 3-在我的数据集中显示这两个分类变量之间关系的最佳方式(绘图)是什么?热图表(ggfluctuation函数)

library(Hmisc) 
library(ggplot2) 
library(reshape) 
data(HairEyeColor) 
P=t(HairEyeColor[,,2]) 
Pm=melt(P) 
ggfluctuation(Pm,type="heatmap")+geom_text(aes(label=Pm$value),colour="white")+ opts(axis.text.x=theme_text(size = 15),axis.text.y=theme_text(size = 15)) 

回答

2

如果要绘制热图,请使用geom_tile。而且,optstheme_text已弃用,并分别由themeelement_text取代。

所以,你可以这样做:

ggplot(Pm, aes(Eye, Hair, fill=value)) + geom_tile() + 
    geom_text(aes(label=Pm$value),colour="white")+ 
    theme(axis.text.x=element_text(size = 15),axis.text.y=element_text(size = 15)) 

,输出:

enter image description here

而且,只是为了回答所有的问题是,ggplot可以处理两个类别列有不同数量的层次,并且热图是显示两个分类变量之间关系的好方法,例如您拥有的分类变量。

+0

太好了,非常感谢您的帮助 – shadi

+0

非常欢迎,很高兴我可以帮忙:) – LyzandeR

+0

嗨再次,只是一个问题,当我在我的数据集中运行此代码时,我会得到此错误:错误:美学要么是长度为1,要么与dataProblems:melt_table1 $ value的长度相同。其中一个变量有13个,另一个有8个等级。我该如何解决这个问题? – shadi

0

GGally软件包有一个ggfluctuation2函数来替代已弃用的gf浮动。但它仍然很粗糙(你甚至不能指定轴标签),我更喜欢原始的ggplot函数。你也可以试试ggally_ratio。