听起来好像您想在10英寸处显示80,000个数据点 - 即8,000 dpi,远高于任何普通打印机或任何人眼都可以感知的。
如果您想查看所有数据,一种方法是将线性线变成许多行,将其变成“页面”。在这里,我任意使每行20,000单位宽,5m / 20k = 250行,每行只绘制了〜300点。这使我们可以看到所有数据,但是有一些权衡,例如现在很难说出我们所在的范围。作为一个微弱的解决方法,我在适当尺寸上添加了标签,注意到每个(任意)300,000个单位中最大的一点。sites.df |>
mutate(section = position %/% 20000,
sec_pos = position %% 20000) |>
ggplot(aes(x = sec_pos, y = section, fill = type)) +
geom_tile(width = 10, height = 0.8) +
geom_text(aes(label = scales::comma(position)),
color = "black", size = 10/.pt, hjust = 1,
data = ~mutate(., group = position %/% 3E5) |>
filter(position == max(position), .by = c(group, name))) +
facet_wrap(~name, ncol = 1) +
scale_fill_manual(values = c("skyblue", "gray50")) +
theme_classic() +
scale_x_continuous(expand = c(0.01,0))