我寫我的第一個閃亮的應用程序試圖端口一個代碼繪製西班牙映射到一個閃亮的應用程序,任何人沒有R的知識,可以使用參數二進制運算符中閃亮。非數字使用ggplot
最近我想出了一個問題,當試圖改變函數返回的ggplot。
我會發布我的代碼的簡化版本。
予先在helper.R一個函數,從UI需要各種輸入並返回一個GG和一個數據幀:
graphing=function(datax,setter,selCCAA,varsel){
map=readShapeSpatial('prov_map.shp')
[email protected]$CodProv=as.integer([email protected]$CodProv)
[email protected]=merge([email protected],datax,by.x='CodProv',by.y='CodProv',sort=F)
[email protected]$id=rownames([email protected])
map.points=fortify(map,region='id')
map.df=join(map.points,[email protected],by='id')
map.df$Cd_CCAAint=as.integer(map.df$Cd_CCAA)
if(varsel=="-"){return (NULL)}
else {
if (setter==0){
mapa=ggplot(map.df)+
aes_string("long","lat",group="group",fill=varsel)+
geom_polygon()+
geom_path(color='white')+
coord_equal()
return(list(mapa,map.df))
}
else {
map.dfx<-subset(map.df,map.df$Cd_CCAAint==selCCAA)
mapa=ggplot(map.dfx)+
aes_string("long","lat",group="group",fill=varsel)+
geom_polygon()+
geom_path(color='white')+
coord_equal()
return(list(mapa,map.dfx))
}
}
}
然後,在server.R,我走GG由該函數返回,並添加更多的行它使用戶可以個性化的曲線圖的顏色,中點等
output$plot=renderPlot({
mapa=graphing(dataini,input$setter,input$selCCAA,input$varsel)
grafico=mapa[[1]]+
scale_fill_gradient2(low='#89D1F3',high='#006EC1')+
theme(legend.position='bottom',axis.title.x=element_blank(),
axis.title.y=element_blank(),axis.ticks=element_blank(),axis.text=element_blank(),
panel.grid.minor=element_blank(),panel.grid.major=element_blank())
grafico
})
當運行該應用程序包括線路scale_fill_gradient2或任何類型的幾何我得到以下錯誤:
Warning: Error in +: non-numeric argument to binary operator
當我只包括主題時,不會出現錯誤。
截至目前,兩行已被列入圖形功能和應用已經完全*運行,但我需要他們在server.R所以如前所述的圖可以個性化。
*:表示應用程序的版本可以使用runGitHub( 「Mapas_BBVA_provincias」, 「IArchondo」)進行測試。任何對顯示西班牙文字符的幫助,如ui中的ñ,都會非常受歡迎。
不能相信我沒有意識到這一點。非常感謝! – IArchondo