我正在尝试创建一个热图,以显示驱动每个单元格颜色的值。如果一个单元格为深蓝色,因为它有5个观测值,我想查看该单元格中的数字5。
(其目的是建立一个信用等级迁移矩阵,其中一个轴是今年的信用等级,另一个是去年的信用等级。输入是一个数据框,其中每一行是一个公司的一个观察值,即公司今年的信用等级,并显示去年的信用等级。该矩阵显示哪些公司在两年内的信用等级稳定,哪些公司的信用等级较低,哪些公司的信用等级较高。
这是数据和代码
require(ggplot2)
# Create a dataframe mm where each row is one observation for one company,
# the company's credit rating this year, and it credit rating last year. A company ID is
# provided.
mm<-data.frame(
CompamyID = c(1:14),
CurrentYear =c("Aaa","Aa","B","Baa","C","Aaa","Aa","B","Baa","C","Aa","B","Baa","C"),
PreviousYear=c("Aaa","Aa","B","Baa","Aa","B","Baa","C","C","Aaa","Aa","B","Baa","C"),
Count=rep(1,14)
)
# Create heatmap and show the number of observations in each cell.
# I have used label= # sum() for illustration but it is wrong.
ggplot(data=mm, aes(x = mm$CurrentYear, y=mm$PreviousYear)) +
geom_bin2d() +
geom_text(aes(fill = mm$Count, label = sum(mm$Count)))+
scale_x_discrete(limits =c( "Aaa", "Aa", "A", "Baa", "Ba", "B", "Caa", "Ca", "C")) +
scale_y_discrete(limits=c("C","Ca","Caa","B","Ba", "Baa", "A", "Aa", "Aaa")) +
scale_fill_gradient2() +
theme(panel.grid.major = element_line( colour ="white", size = 0.5 ))+
theme(panel.grid.minor = element_line( colour ="black", linetype ="dashed", size = 0.5)) +
theme(panel.background = element_rect( colour ="black", fill ="white",size = 1.0 )) +
ggtitle("MIGRATION MATRIX USING geom_bin2d()") +
xlab("Current Year") +
ylab("Previous Year")
我将在内部使用stat_bin2d
此方法来ggplot2
计算计数,并以名称命名..count..
。
ggplot(data=mm, aes(x = mm$CurrentYear, y=mm$PreviousYear)) +
geom_bin2d() +
stat_bin2d(geom="text", aes(label=..count..))+
scale_x_discrete(limits =c( "Aaa", "Aa", "A", "Baa", "Ba", "B", "Caa", "Ca", "C")) +
scale_y_discrete(limits=c("C","Ca","Caa","B","Ba", "Baa", "A", "Aa", "Aaa")) +
scale_fill_gradient2() +
theme(panel.grid.major = element_line( colour ="white", size = 0.5 ))+
theme(panel.grid.minor = element_line( colour ="black", linetype ="dashed", size = 0.5)) +
theme(panel.background = element_rect( colour ="black", fill ="white",size = 1.0 )) +
ggtitle("MIGRATION MATRIX USING geom_bin2d()") +
xlab("Current Year") +
ylab("Previous Year")
希望对您有所帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句