2016-07-29 3 views
0

私はggplot2から既に生成しているHTMLインタラクティブグラフをplotlyライブラリで取得していますが、積み重ねられたグラフではうまくいきません。ggplotプロットAPI混乱幅スタックバーグラフ

は、ここに私のggplotコードです:

if(file.exists(filename)) { 
    data = read.table(filename,sep=",",header=T) 
} else { 
    g <- paste0("=== [E] Error : Couldn't Found File : ",filename) 
    print (g) 
} 
    ReadChData <- data[data$Channel %in% c("R"),] 
    #head(ReadChData,10) 

# calculate midpoints of bars (simplified using comment by @DWin) 
Data <- ddply(ReadChData, .(qos_level), 
    transform, pos = cumsum(AvgBandwidth) - (0.5 *AvgBandwidth) 
) 

# library(dplyr) ## If using dplyr... 
# Data <- group_by(Data,Year) %>% 
# mutate(pos = cumsum(Frequency) - (0.5 * Frequency)) 

# plot bars and add text 
g <- ggplot(Data, aes(x = qos_level, y = AvgBandwidth)) + 
    scale_x_continuous(breaks = x_axis_break) + 
    geom_bar(aes(fill = MasterID), stat="identity", width=0.2) + 
    scale_colour_gradientn(colours = rainbow(7)) + 
    geom_text(aes(label = AvgBandwidth, y = pos), size = 3) + 
    theme_set(theme_bw()) + 
    ylab("Bandwidth (GB/s)") + 
    xlab("QoS Level") + 
    ggtitle("Qos Compting Stream") 

png(paste0(opt$out,"/",GraphName,".png"),width=6*ppi, height=6*ppi, res=ppi) 
print (g) 

library(plotly) 
p <- ggplotly(g) 
#libdir arugumet will be use to point to commin lib 
htmlwidgets::saveWidget(as.widget(p), selfcontained=FALSE, paste0(opt$out,"/qos_competing_stream.html")) 

、ここで助けてください

http://pasteboard.co/2fHQfJwFu.jpg

のlib plotly HTML出力形式です。

答えて

3

これはおそらくかなり遅く答えるでしょう。しかし将来的にこの問題が発生する可能性のある人には...

機能によってgeom_barの幅パラメータが認識されません。

  1. アラウンド仕事: 周りの作業(1つの非常に良いではない)パラメータcolour="white", size = 1を使用します。これは基本的にバーの周りに白い線を追加し、空白のような効果を作ります。 次の操作を試みることができる: stat_summary(aes(fill = MasterID), geom="bar", colour="white", size = 1, fun.y = "sum", position = "stack")

  2. よりよい解決策:layout機能から 使用bargapパラメータ。コードは次のようになります。 ggplotly(type='bar', ...) %>% layout(bargap = 3, autosize=T)

P.S.問題コードのコードは実行可能ではなく、ファイル名がないためにエラーが発生します。

+0

ありがとうございました。私はggplotオブジェクトから生成するのではなく、philly javascriptをoffilineモードで使い始めました。しかし、答えを受け入れるだろう。 – vjain419