我有一个
data.frame
,我想将其绘制为带有 R
的 plotly
的堆叠条形图:
data.df <- data.frame(group = c(rep("g1",6),rep("g2",6),rep("g3",6)),
sample = rep(c(paste0("f", 1:3), paste0("m", 1:3)), 3),
f = rep(100/6, 6))
每个
data.df$group
都是一个条形,其中 data.df$sample
是每个条形中堆栈中的层(具有不同的颜色),并且由于有两组 data.df$sample
我希望每个都有其自己的自己的图案。
这是带有颜色和图案的
data.frame
:
colors.df <- data.frame(sample = c(c(paste0("f", 1:3)), c(paste0("m", 1:3))),
color = rep(c("#FFC0CB", "#FFFF00", "#00FFFF"),2),
shape = c(rep("stripe", 3),rep("cross", 3)))
这是我正在尝试的
plotly
代码:
library(plotly)
plot_ly(x = data.df$group, y = data.df$f, name = data.df$sample, color = data.df$sample,
type = 'bar', colors = colors.df$color, marker = list(pattern = list(shape = colors.df$chape))) %>%
layout(xaxis = list(showticklabels = F), yaxis = list(title = "%", zeroline = F), barmode = 'stack', orientation = 'v')
它忽略了
markers
参数并给出:
知道如何让
data.df$sample
中的两组以不同的模式出现吗?
data.df <- data.frame(group = c(rep("g1",6),rep("g2",6),rep("g3",6)),
sample = rep(c(paste0("f", 1:3), paste0("m", 1:3)), 3),
shape = c(rep("x", 3),rep("|", 3)), ## I added the shape in data.df
f = rep(100/6, 6))
colors.df <- data.frame(sample = c(c(paste0("f", 1:3)), c(paste0("m", 1:3))),
color = rep(c("#FFC0CB", "#FFFF00", "#00FFFF"),2))
然后情节:
library(plotly)
plot_ly(x = data.df$group, y = data.df$f, name = data.df$sample, color = data.df$sample,
type = 'bar', colors = colors.df$color, marker = list(pattern = list(shape = data.df$shape))) %>%
layout(xaxis = list(showticklabels = F), yaxis = list(title = "%", zeroline = F), barmode = 'stack')