ho cercato di estendere my own answer on drawing Gantt Charts a un caso più generale. Illustriamo risultato parziale qui:Tracciando un pianificatore anno in R
Un numero di viaggi sono tracciati su questo grafico, con i punti rossi rappresentano partenze, ei punti verdi un ritorno. Ora ecco la mia sfida:
- Vorrei segnare tutti i giorni tra una partenza e un ritorno con un punto grigio e lasciare intatti tutti gli altri.
- Vorrei i punti per avvolgere correttamente attorno al differente durata dei mesi (ad esempio la partenza 28 giugno avrebbe segnato i giorni fino al 30 giugno e poi avvolgere intorno al 1 ° luglio).
- Lo script non dovrebbe fallire nel caso di un viaggio di un giorno (ad esempio il viaggio all'inizio di settembre in cui partenza e ritorno avvengono nello stesso giorno e una più piccola punto verde è tracciata su un pennarello rosso più grande).
È semplice produrre questo grafico con il codice seguente e sarebbe facile unire i punti con una linea dal rosso al verde dove entrambi si verificano nello stesso mese. Chiunque può aiutare con il caso di un involucro intorno in modo generale abbastanza da assumere anche saltare e anni non bisestili, ecc?
library("ggplot2")
# ----------------
# LOAD DATA
df <- read.table(text='id,dep_month,dep_day,ret_month,ret_day
c,1,5,1,16
v,2,1,2,6
a,3,28,3,31
z,4,9,4,11
y,4,25,5,3
f,6,28,7,7
w,8,19,8,29
b,9,9,9,9
k,9,29,10,6
n,11,20,12,3', header = TRUE,
sep = ',')
# ----------------
# DRAW YEAR CHART
p <- ggplot(data = df,
aes(x = dep_day,
y = dep_month
)
)
p <- p + theme_bw()
p <- p + geom_point(colour = 'red',
size = 6)
p <- p + geom_point(aes(x = ret_day,
y = ret_month
),
colour = 'green',
size = 4
)
p <- p + scale_x_continuous(breaks = c(1:31))
p <- p + scale_y_reverse(breaks = c(1:12))
p <- p + ylab("Month") + xlab("Day")
print(p)
Grazie, @smu, che è più elegante, molto meglio di qualsiasi i miei sforzi. – gauden