y轴上的刻度线

时间:2020-05-04 14:32:16

标签: r ggplot2

我已经绘制了一个热图,但是看起来像这样:

enter image description here

如您所见,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

2 个答案:

答案 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创建