我想在 Flexdashboard 仪表图上添加刻度线,然后突出显示仪表栏将从成功过渡到危险的特定点。到目前为止,这是我的代码:
flexdashboard::gauge(42, min = 0, max= 100,
abbreviateDecimals = 2,
sectors = flexdashboard::gaugeSectors(success = c(0,50),
warning = c(50,75),
danger = c(75,100),
colors = c('green','yellow','red')))
这是现在的样子
我希望它看起来像这样
即使它看起来不像第二张图像那么干净,但在绘图上有刻度线,然后通过某种方式突出显示条形图会改变颜色的点,那就太好了。
不确定是否可以使用
guage()
,但另一种选择可能是使用 ggplot()
将 coord_radial()
添加到仪表板(沿着这些思路)?
library(tibble)
library(ggplot2)
df <- tibble(
x = c(1:42, 1:50, 51:75, 76:100),
y = c(rep(1, 42), rep(0.1, 50), rep(0.1, 25), rep(0.1, 25)),
col = c(rep("darkgreen", 42), rep("darkgreen", 50), rep("darkorange", 25), rep("darkred", 25))
)
df |> ggplot(aes(x, y, fill = col, colour = col)) +
geom_col(width = 0.8) +
geom_hline(yintercept = 0.1, colour = "white") +
annotate("text", label = "42", x = 50, y = -0.5, size = 10, fontface = "bold") +
scale_x_continuous(limits = c(0, 100)) +
scale_y_continuous(limits = c(-1, NA)) +
scale_fill_identity() +
scale_colour_identity() +
coord_radial(start = -0.5 * pi, end = 0.5 * pi, expand = FALSE) +
labs(x = NULL, y = NULL) +
theme(
axis.text.y = element_blank(),
axis.ticks.y = element_blank()
)
创建于 2024-04-23,使用 reprex v2.1.0