堆叠条形图上的误差条,使用 plotly 或 ggplotly
Error bars on stacked barchart, using either plotly or ggplotly
我需要将一个简单的 ggplot(一个不确定的堆积条)转换为小部件。
数据:
world.tot <- data.frame('country'='world', 'GHG'=c('CH4', 'CO2','N2O'),
'emi'=c(6e+6, 3e+6, 1+6),
'unc.min'=8561406, 'unc.max'=14027350)
和 ggplot:
p2 <- ggplot(world.tot) +
geom_bar(aes(x=country,y=emi,fill=GHG), stat='identity', position='stack' ) +
geom_errorbar(aes(x=country, ymin=unc.min, ymax=unc.max), width=0.2) +
theme(axis.title. x=element_blank(), axis.title. y=element_blank()) +
theme(legend.position='none')
当我尝试时:ggplotly(p2)
仅转换堆叠条,而不转换误差条。有什么建议吗?
或者,我可以使用 plot_ly
来创建绘图,但无法添加错误栏:
plot_ly(world.tot, x=~country. y=~emi, color=~GHG,type=bar,
error_y=~list(array(c(unc.min, unc.max))) %>%
layout(barmode='stack')
这会为堆叠直方图的所有份额生成误差条,而我只需要堆叠直方图顶部的一个错误。
感谢任何帮助
您可以准备一个data.frame,每组只有一个错误大小
library(dplyr)
world.err <- world.tot %>%
group_by(country) %>%
summarise(emi = sum(emi), unc.min = 8561406, unc.max = 14027350)
并将错误绘制为单独的轨迹
plot_ly(world.tot) %>%
add_bars(x = ~country, y = ~emi, color = ~GHG, type='bar') %>%
add_trace(x = ~country, y = ~emi, data = world.err,
showlegend = F, mode='none', type='scatter',
error_y = ~list(array = c(unc.min, unc.max), color = '#000000')) %>%
layout(barmode='stack')
我需要将一个简单的 ggplot(一个不确定的堆积条)转换为小部件。
数据:
world.tot <- data.frame('country'='world', 'GHG'=c('CH4', 'CO2','N2O'),
'emi'=c(6e+6, 3e+6, 1+6),
'unc.min'=8561406, 'unc.max'=14027350)
和 ggplot:
p2 <- ggplot(world.tot) +
geom_bar(aes(x=country,y=emi,fill=GHG), stat='identity', position='stack' ) +
geom_errorbar(aes(x=country, ymin=unc.min, ymax=unc.max), width=0.2) +
theme(axis.title. x=element_blank(), axis.title. y=element_blank()) +
theme(legend.position='none')
当我尝试时:ggplotly(p2)
仅转换堆叠条,而不转换误差条。有什么建议吗?
或者,我可以使用 plot_ly
来创建绘图,但无法添加错误栏:
plot_ly(world.tot, x=~country. y=~emi, color=~GHG,type=bar,
error_y=~list(array(c(unc.min, unc.max))) %>%
layout(barmode='stack')
这会为堆叠直方图的所有份额生成误差条,而我只需要堆叠直方图顶部的一个错误。
感谢任何帮助
您可以准备一个data.frame,每组只有一个错误大小
library(dplyr)
world.err <- world.tot %>%
group_by(country) %>%
summarise(emi = sum(emi), unc.min = 8561406, unc.max = 14027350)
并将错误绘制为单独的轨迹
plot_ly(world.tot) %>%
add_bars(x = ~country, y = ~emi, color = ~GHG, type='bar') %>%
add_trace(x = ~country, y = ~emi, data = world.err,
showlegend = F, mode='none', type='scatter',
error_y = ~list(array = c(unc.min, unc.max), color = '#000000')) %>%
layout(barmode='stack')