geposanui/scatter_plot.R

73 lines
No EOL
1.7 KiB
R

library(data.table)
library(ggplot2)
#' Draw a scatter plot containing gene positions.
scatter_plot <- function(gene_ids, data) {
species <- data$species
setorder(species, median_distance)
distances <- data$distances[geneid %in% gene_ids]
plot <- ggplot() +
scale_x_continuous(
name = "Species",
breaks = seq_len(nrow(species)),
labels = species$label
) +
scale_y_continuous(name = "Distance to telomeres [Mbp]") +
geom_line(
species,
mapping = aes(
x = as.numeric(rownames(species)),
y = median_distance / 1000000
)
)
colors <- rainbow(length(gene_ids))
for (i in seq_len(length(gene_ids))) {
gene_id <- gene_ids[i]
gene_distances <- data.table(
index = as.numeric(rownames(species)),
distance = unlist(distances[geneid == gene_id, -1])
)
plot <- plot +
geom_point(
gene_distances,
mapping = aes(
x = index,
y = distance / 1000000,
),
color = colors[i]
)
}
plot
# plot(
# species[, median_distance] / 1000000,
# type = "l",
# xaxt = "n",
# xlab = "",
# ylab = "Distance to telomere (Mbp)",
# bty = "n"
# )
# axis(
# 1,
# at = seq_len(nrow(species)),
# tick = FALSE,
# labels = FALSE
# )
# mtext(
# data$species[, label],
# side = 1,
# at = seq_len(nrow(species)),
# las = 2,
# # col = axis.labels.col,
# adj = 1
# )
}