Tôi có cốt truyện với một số điểm thời gian khó phân biệt bằng màu một mình và do đó tôi muốn gắn nhãn các điểm thời gian trên ô, nhưng các nhãn chồng lên nhau (xem đồ thị bên dưới) theo cách khó đọc nhãn.sắp xếp văn bản trên geom_point bằng cách sử dụng geom_text
Cốt truyện hiện trông như thế này,
Tôi tự hỏi nếu có một cách để 'chồng' các nhãn hoặc cách nào đó (script) có thể đảm bảo chúng không chồng lên nhau. Một cái gì đó như thế này,
Mọi trợ giúp sẽ được đánh giá cao.
Đây là mã tôi đã sử dụng để sản xuất cốt truyện,
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' # rename
# order data in mdfn by 'Referral' in dfn
mdfn$Patient <- factor(mdfn$Patient,levels =
(dfn$Patient[order(dfn$Referral)]),ordered = TRUE)
# subset a dataset to avoid 'Discharge' for cases that are not closed
mdfn2 <- subset(mdfn,!(Visit=="Discharge" & Year > as.Date("2014-01-01")))
# the plot as it looks now
ggplot(mdfn, aes(Year, Patient)) +
geom_blank() +
geom_line(data = mdfn[mdfn$openCase == 0,], colour = "black") +
geom_line(data = mdfn[mdfn$openCase == 1,], colour = "grey") +
geom_point(data = mdfn2, aes(colour = Visit), size = 4, shape = 124) +
geom_text(data=mdfn2, mapping=aes(x=Year, y=Patient,
label=substr(Visit, 1, 7), colour=Visit), size=2,
vjust=-.4, hjust=-.1, angle = 00)
Thiếu chức năng, thiếu dữ liệu, không thể lặp lại. –
Tôi không biết làm thế nào để làm điều đó, nhưng bạn có thực sự cần nhãn? Đã có một huyền thoại cung cấp thông tin đó. –
có thể trùng lặp của [Vị trí nhãn điểm thông minh trong R] (http://stackoverflow.com/questions/7611169/intelligent-point-label-placement-in-r) – joran