ggplot 在阴谋失踪的传说
ggplot in plotly missing legend
我无法在情节中显示图例,特别是 ggplot + geom_line
。
我正在使用 plotly 3.6.0
和 ggplot2 2.1.0
为了演示我的问题,我将构建一个简单的数据框:
x = 1:5
y1 = 1:5
y2 = y1 * 2
d = data.frame(x, y1, y2)
g = ggplot(data = d, aes(x=x)) +
geom_line(aes(y = y1, col = 'y1')) +
geom_line(aes(y = y2, col = 'y2')) +
scale_color_manual(values = c('red', 'blue'), labels = c('y1 lab', 'y2 lab'), name = '')
g
这将创建一个带有图例的 ggplot 图。但是,当我尝试使用 plotly 创建交互式版本时,图例不再存在。
ggplotly(g)
我尝试了以下方法来解决问题:
g_build = plotly_build(g)
g_build$layout$showlegend <- TRUE
g_build$layout$margin <- list(l=80, r=300, b=80, t=100, pad=0)
g_build
library(reshape2)
d<-melt(d,id="x")
g <- ggplot(data = d, aes(x=x, y=value, color=variable)) +
geom_line() +scale_color_manual(values = c('red', 'blue'),
labels = c('y1 lab', 'y2 lab'), name = '')
ggplotly(g)
我无法在情节中显示图例,特别是 ggplot + geom_line
。
我正在使用 plotly 3.6.0
和 ggplot2 2.1.0
为了演示我的问题,我将构建一个简单的数据框:
x = 1:5
y1 = 1:5
y2 = y1 * 2
d = data.frame(x, y1, y2)
g = ggplot(data = d, aes(x=x)) +
geom_line(aes(y = y1, col = 'y1')) +
geom_line(aes(y = y2, col = 'y2')) +
scale_color_manual(values = c('red', 'blue'), labels = c('y1 lab', 'y2 lab'), name = '')
g
这将创建一个带有图例的 ggplot 图。但是,当我尝试使用 plotly 创建交互式版本时,图例不再存在。
ggplotly(g)
我尝试了以下方法来解决问题:
g_build = plotly_build(g)
g_build$layout$showlegend <- TRUE
g_build$layout$margin <- list(l=80, r=300, b=80, t=100, pad=0)
g_build
library(reshape2)
d<-melt(d,id="x")
g <- ggplot(data = d, aes(x=x, y=value, color=variable)) +
geom_line() +scale_color_manual(values = c('red', 'blue'),
labels = c('y1 lab', 'y2 lab'), name = '')
ggplotly(g)