2014-04-10 39 views
0

試圖做一件簡單的事情,並提出意想不到的麻煩。我正在編寫一個RShiny應用程序,並想在ggplot圖中標出這些點。gshplot標籤在Rshiny

我的代碼如下。我不明白爲什麼我不能通過變量花來獲取圖表中的點標籤。爲了比較起見,當我刪除點標籤處的所有嘗試(這表明它不是來自其他函數的可變直通等的問題等)時,註釋行完全正常工作。此外,直接將rownames()放入aes也不起作用。

感謝您的幫助。

output$graph=renderPlot({ 
pairs2=pctchg() 
pairs3=as.data.frame(pairs2) 

rownames(pairs3)=input$vector[] 
flowers=rownames(pairs3) 

#basegraph=ggplot(pairs3,aes(x,y)) 
basegraph=ggplot(pairs3,aes(x,y,label=flowers)) 

globalvars=basegraph + geom_point() + geom_smooth(method = 'lm') + geom_text(aes(label=flowers)) 

#globalvars=ggplot(pairs3,aes(x,y)) + geom_point() + geom_smooth(method = 'lm') 

print(globalvars) }) 

回答

0

flowersdata.frame你從繪製的一列,而不是單獨的對象。

pairs3$flowers <- input$vector

然後試試你的繪圖代碼。

+0

謝謝!非常有幫助。這背後的直覺是什麼?這一切都必須包含在一個數據框內嗎? –

+0

據我所知,'aes'旨在映射到data.frame中的列名。如果你想使用一個常量或data.frame外部的對象,你需要傳遞它,而不用'aes':'ggplot(pairs3,aes(x,y))+ geom_point()+ geom_text(label = flowers) '。不過,如果可能的話,我認爲在數據框架中包含所有你想要繪製的內容是最安全的。 –

+0

好吧,我明白了。再次感謝幫助。 –