2
실험에서 감쇠를 따르기 위해 히트 맵을 사용하고 있는데 두 개의 첫 번째 열에 일부 날짜 정보를 독점적으로 인쇄하고 싶습니다. 그러나 ggplot2가 ' 그 많은 결석 한 관찰을 받아 들일 수 없다.ggplot2 : Heatmap 플롯 팅, 선택된 셀에만 geom_text 배치
이것은 내 플롯이 현재 (여러 날짜로가는 길)를 보는 방법입니다.
geom_text를 단지 두 개의 첫 번째 열로 제한 할 수있는 사람은 누구입니까?
샘플 코드를 참조하십시오.
require(ggplot2)
require(plyr)
require(reshape)
# create sample data
set.seed(666)
dfn <- data.frame(
Referral = seq(as.Date("2007-01-15"), len= 26, by="23 day"),
VISIT01 = seq(as.Date("2008-06-15"), len= 24, by="15 day")[sample(30, 26)],
VISIT02 = seq(as.Date("2008-12-15"), len= 24, by="15 day")[sample(30, 26)],
VISIT03 = seq(as.Date("2009-01-01"), len= 24, by="15 day")[sample(30, 26)],
VISIT04 = seq(as.Date("2009-03-30"), len= 24, by="60 day")[sample(30, 26)],
VISIT05 = seq(as.Date("2010-11-30"), len= 24, by="6 day")[sample(30, 26)],
VISIT06 = seq(as.Date("2011-01-30"), len= 24, by="6 day")[sample(30, 26)],
Discharge = seq(as.Date("2012-03-30"), len= 24, by="30 day")[sample(30, 26)],
Patient = factor(1:26, labels = LETTERS),
openCase = rep(0:1, 100)[sample(100, 26)])
# set today's data for cases that do not have an Discharge date
dfn$Discharge[ is.na(dfn$Discharge) ] <- as.Date("2014-01-30")
mdfn <- melt(dfn, id=c('Patient', 'openCase'), variable_name = "Visit")
names(mdfn)[4] <- 'Year'
# order data in mdfn by 'Referral' in dfn
mdfn$Patient <- factor(mdfn$Patient,levels = (dfn$Patient[order(dfn$Referral)]),
ordered = TRUE)
mdfn$Year2 <- ifelse(mdfn$Year != 0, 1, 0)
mdfn$Year2[ is.na(mdfn$Year) ] <- 0
mdfn$FWrap <- 'Core Measures'
mdfn$FWrap[mdfn$Visit == 'Referral'] <- 'Referral'
mdfn$FWrap[mdfn$Visit == 'VISIT05' | mdfn$Visit == 'VISIT06'] <- 'Optional Measures'
mdfn$FWrap[mdfn$Visit == 'Discharge'] <- 'Discharge'
mdfn$FWrap <- ordered(mdfn$FWrap, levels = c('Referral', 'Core Measures', 'Optional Measures', 'Discharge'))
base_size <- 9
m2 <- ggplot(mdfn, aes(Visit, Patient)) +
geom_tile(aes(fill = Year2), colour = "gray") +
scale_fill_gradient(low = "white", high = "steelblue")
m2 + theme_grey(base_size = base_size) + labs(x = "", y = "") +
scale_x_discrete(expand = c (0, 0)) + scale_y_discrete(expand = c(0, 0)) +
opts(legend.position = "none", axis.ticks = theme_blank(),
axis.text.x = theme_text(size = base_size * 0.8, angle = 330, hjust = 0,
colour = "grey50")) + facet_grid(~ FWrap, scales = "free", space="free") +
geom_text(aes (label=format(Year, "%b. %d, %Y")), size=3, colour='white')
# this is how I thought I could solve it.
mdfn$Yearlabel <- mdfn$Year
mdfn$Yearlabel[mdfn$Visit != 'Referral' & mdfn$Visit != 'VISIT01'] <- NA
# mdfn[,c(4,5,7,3)]
m2 <- ggplot(mdfn, aes(Visit, Patient)) +
geom_tile(aes(fill = Year2), colour = "gray") +
scale_fill_gradient(low = "white", high = "steelblue")
m2 + theme_grey(base_size = base_size) + labs(x = "", y = "") +
scale_x_discrete(expand = c (0, 0)) + scale_y_discrete(expand = c(0, 0)) +
opts(legend.position = "none", axis.ticks = theme_blank(),
axis.text.x = theme_text(size = base_size * 0.8, angle = 330, hjust = 0,
colour = "grey50")) + facet_grid(~ FWrap, scales = "free", space="free") +
geom_text(aes (label=format(Yearlabel, "%b. %d, %Y")), size=3, colour='white')
'의)하여'geom_text의'data' 인수()'레이어를 사용하기 쉽게, 그리고 그것에게'일부를 (통과하지 것이다 값을 표시 하시겠습니까? – baptiste
@baptiste, 제 질문에 답변 해 주셔서 감사합니다. 무슨 뜻인지 보여 주시겠습니까? 나는 네가 의미하는 바를 충분히 이해하지 못한다. 감사, 에릭 –
하위 집합 mdfn 데이터 프레임 :'mdfn2 = 하위 집합 (mdfn, 방문 == "추천"| 방문 == "VISIT01")'. mdfn2는'geom_text' 레이어에서 사용할 데이터 프레임입니다. 'geom_text (data = mdfn2, aes (방문, 환자, 레이블 = ...))'. –