Мне нужно нарисовать много разных плиточных графиков с квадратами и точками поверх плиток в соответствии с
данные. К сожалению, я не могу включить иллюстрацию, но в основном сюжет состоит из плиток, на которых есть квадраты и точки или нет.
Каждая из этих фигур имеет разное количество плиток в направлении х и у. В результате я не могу использовать абсолютные единицы измерения (мм) для масштабирования размеров точек и размеров блоков. Есть ли способ указать размер точки в относительном выражении. Например, как geom_point(aes(x=x, y=y), size = 0.5 * tile_size())
.
Следующий глючный фрагмент кода
df <- data.frame(x=factor(c(1:4), labels=c("a", "b", "c", "d")), y=factor(c(1:4), labels=c("f", "g", "h", "j")))
p <- ggplot(data = df) + geom_tile(aes(x=x, y=y), fill="green", color="black")
p <- p + opts(aspect.ratio=2)
p <- p + geom_point(aes(x=x, y=y), color="red", size = 4, shape=15, color="red")
p <- p + geom_point(aes(x=x, y=y), color="blue", size = 2)
p <- p + scale_x_discrete("Variables") + scale_y_discrete("Time")
show(p)
почти достигает желаемой функциональности, за исключением случаев, когда я изменяю размеры графического окна или размеров PDF, относительный размер точек и блоков по отношению к размерам плиток изменяется. В частности, точки и прямоугольники могут быть больше, чем плитка, на которой они нарисованы, что является абсолютным нет-нет.
Если относительное масштабирование размера точки невозможно, то я хотел бы знать, возможно ли указать размеры области графика (график без меток осей, отметок и т. Д.), Используя ggsave()
или pdf()
. Тогда я мог бы сделать относительное масштабирование самостоятельно.