2016-09-19 125 views
3

我很難得到一個傳奇,以陰謀出現,特別是與ggplot + geom_lineggplot在陰謀缺失的傳說

我使用plotly 3.6.0ggplot2 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。但是,當我嘗試使用情節創建交互式版本時,圖例不再存在。

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 
+0

如果下面的帖子解決了您的問題,可以考慮通過標記檢查接受它作爲一種解決方案旁該職位。如果您覺得某些問題沒有解決,請考慮更新您的問題並提出其他問題。 –

回答

2
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) 

enter image description here

+0

工程很好,非常感謝。我想我需要在使用ggplot時停止按列組織變量(或稍後重塑它們)。 –

+0

是的!這是用ggplot2去解決它的最好方法 –