我正在自定义瀑布图,几乎已经达到最终结果,除了现在的 x 轴上的标签(在
coord_flip()
之后)。我现在的 x 轴总和为 100%,虽然在 scale_y_reverse()
之后使用 coord_flip()
帮助我保持了预期的条形层次结构,但它将比例设置为 limits = c(100, 0)
,而不是我想要保留的 limits = c(0, 100)
。这是处理它的正确方法,除了对我的使用来说这并不重要,因为我只是试图以百分比形式可视化增量。
这是一个表示:
data_fig <- data.frame(class = rev(c("Class A", "Class B", "Class C", "Other Classes")),
values = rev(c(15, 25, 50, 10)))
waterfalls::waterfall(
.data = data_fig,
rect_width = 0.7,
fill_by_sign = FALSE,
put_rect_text_outside_when_value_below = FALSE,
rect_border = NA,
total_rect_border_color = NA,
draw_axis.x = "none") +
coord_flip() +
scale_y_reverse()
我尝试过的:
limits = (0, 100)
中设置scale_y_reverse()
;行被删除。axis.text.x = element_blank()
并尝试手动覆盖,但与连续缩放相关的错误。coord_flip()
和scale_xy_reverse()
。geom_rect()
/geom_segment()
构建瀑布图,但不知何故无法解决这个特定问题(据我了解瀑布库使用这些函数)。我很欣赏有关如何保持
limits = (0, 100)
和其余图形元素不变的想法。提前非常感谢!
以相反的顺序指定中断和标签似乎会生成您想要的结果:
waterfalls::waterfall(
.data = data_fig,
rect_width = 0.7,
fill_by_sign = FALSE,
put_rect_text_outside_when_value_below = FALSE,
rect_border = NA,
total_rect_border_color = NA,
draw_axis.x = "none") +
coord_flip() +
scale_y_reverse(breaks=c(100, 75, 50, 25, 0), labels=c(0, 25, 50, 75, 100))