我已经绘制了一个热图,但是看起来像这样:
如您所见,y轴上的所有刻度线都相互覆盖,总的来说看起来不太好。如何在y轴上将这些刻度线彼此分开? 我的代码是:
ggplot(df, aes(Date, Place`)) +
geom_tile(aes(fill = N)) +
scale_fill_viridis(name = N, label = comma) +
theme_tufte(base_family = "Helvetica") +
theme(axis.ticks = element_blank()) +
theme(axis.text = element_text(size = 10)) +
scale_y_discrete(expand=c(0.2,0))
我试图将scale_y_discrete(expand = c(0.2,0))更改为scale_y_discrete(expand = c(0.7,0)),但没有任何改变。我无法减少y轴上的对象数量
数据样本:
Date Place N
2020.04.20 8797 173032
2020.05.01 315D 10
2020.04.13 Q168 193597
2020.04.19 8797 96104
2020.04.02 8797 244935
2020.04.04 315D 474049
2020.05.01 8797 13
2020.04.23 315D 125607
2020.04.18 Q168 787224
2020.04.11 8797 282303
2020.04.12 8797 138443
2020.04.24 Q168 176487
2020.03.19 315D 290053
2020.04.10 315D 561935
2020.04.06 Q168 221196
2020.03.26 Q168 202552
2020.03.23 315D 516936
2020.04.06 315D 195038
答案 0 :(得分:1)
您打算导出数据吗?如果是这样,我想在该步骤解决所有扩展问题。
ggsave(my_plot, filename = "plot.pdf", scale = 0.5)
ggsave(my_plot, filename = "plot.pdf", width = 10, height = 10, units = "in")
您几乎可以用任何文件格式替换“ pdf”。
答案 1 :(得分:0)
以下是调整y轴导轨的两种解决方案。很抱歉没有使用您的数据,无法将其轻松粘贴到我的R会话中。
第一个选项是不显示重叠的标签。您可以通过在轴向导中设置check.overlap = TRUE
来完成此操作。
library(ggplot2)
ggplot(iris, aes(Petal.Width, paste0(Species, "_", 1:150))) +
geom_point() +
guides(y = guide_axis(check.overlap = TRUE))
第二个选项是“躲避”标签,即将标签放置在层次结构中,层次结构的深度由n.dodge
控制。
ggplot(iris, aes(Petal.Width, paste0(Species, "_", 1:150))) +
geom_point() +
guides(y = guide_axis(n.dodge = 2))
由reprex package(v0.3.0)于2020-05-04创建