我有帶有正面和負面條形的條形圖。我的目標是在 ggplotly 中做到這一點,并用白色填充負數并保持邊框顏色相同。
代碼:
df <- data.frame (model = c("A","A","A","A","A","B","B","B","B","B"),
size = c("med","big","small","big","small","med","big","small","big","small"),
sale = c(1001,1050,-300,-150,-25,960,670,90,-105,-76),
area = c("med","large","narrow","large","narrow","med","large","narrow","large","narrow")
)
ggplot()
# plot positive with fill and colour based on model
geom_col(aes(sale, tidytext::reorder_within(size, sale, model),
fill = size, color = size),
data = df,
position = "stack")
tidytext::scale_y_reordered()
labs(fill = "margin2")
facet_grid(model ~ ., switch = "y",scales = "free_y")
theme(axis.text.x = element_text(angle = 90),
strip.background = element_rect(fill = "white"),
strip.placement = "outside",
strip.text.y.left = element_text(angle = 0),
panel.spacing = unit(0, "lines"))
theme(legend.position="none") geom_vline(xintercept = 0)
預期輸出:

uj5u.com熱心網友回復:
您可以進行一些資料操作并添加另一層:
df %>%
mutate(y = tidytext::reorder_within(size, sale, model)) %>%
group_by(size, model) %>%
mutate(sale_neg = sum(sale[sale < 0])) %>%
ggplot(aes(sale, y, fill = size, color = size))
geom_col(position = "stack")
geom_col(position = 'identity', aes(x = sale_neg), fill = 'white')
tidytext::scale_y_reordered()
labs(fill = "margin2")
facet_grid(model ~ ., switch = "y",scales = "free_y")
theme(axis.text.x = element_text(angle = 90),
strip.background = element_rect(fill = "white"),
strip.placement = "outside",
strip.text.y.left = element_text(angle = 0),
panel.spacing = unit(0, "lines"))
theme(legend.position="none") geom_vline(xintercept = 0)

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/478904.html
標籤:r ggplot2 情节地 数据可视化 ggplotly
上一篇:R:在彼此的頂部繪制點列
下一篇:aes中每個箱線圖的特定顏色
