小编Ale*_*mas的帖子

plotGoogleMaps在闪亮的应用程序中

我认为在一个闪亮的应用程序中使用plotGoogleMaps来动态分析和显示使用R的空间数据真的很酷.我之前从未使用过任何一个包(它们相对较新)并且没有太多的编程经验,所以我开始每个教程和示例,然后尝试将它们混合在一起.

我可以使用所有单独的代码元素,但运行应用程序不会显示谷歌地图.我猜它与plotGoogleMaps有关,试图在浏览器中绘图,并且试图在浏览器中渲染绘图,但我不知道如何解决这个问题.我从闪亮的教程输入和输出删除了大部分闪亮的代码,然后按照plotGoogleMaps教程

测试代码:

#load packages and data
library(shiny)
library(plotGoogleMaps)
data(meuse)

#convert data frame to SpatialPointDataFrame and set 
coordinates(meuse)<-~x+y
proj4string(meuse) <- CRS('+init=epsg:28992')

#will need to select column name for app, maybe not best way to do this, 
#but seems to work
formulaText<-paste('zinc')

#plot data on Google map, opens browser and works
mpgPlot <- plotGoogleMaps(meuse, zcol=formulaText)
Run Code Online (Sandbox Code Playgroud)

ui.R

library(shiny)

# Define UI for meuse test
shinyUI(pageWithSidebar(

    # Application title
    headerPanel("Meuse Test"),

    # Sidebar with controls to select the …
Run Code Online (Sandbox Code Playgroud)

google-maps r shiny

7
推荐指数
1
解决办法
9208
查看次数

当填充也用于美学时,ggplot2 更改颜色图例的填充

当填充也用于 ggplot2 的美学时,有没有办法控制颜色图例的填充?

前任。

dat<-data.frame(id=as.character(1:4), var1=rep(LETTERS[1:2], 2), var2=rep(LETTERS[3:4], 2))
dat
library(ggplot2)

ggplot(dat)+
  geom_bar(aes(id, color=var1, fill=var2))+
  scale_color_manual(values=c("A"="black", "B"="grey"))+
  theme_light()
Run Code Online (Sandbox Code Playgroud)

在这个图例中,很难看到颜色图例中深灰色填充周围的浅灰色边框。我承认指定颜色并在同一个图中填充可能不是一个好习惯,因为很难理解哪种颜色意味着什么,并且填充对象周围的彩色边框很难区分,但我该怎么做如果我想?

这里颜色变量的背景颜色使得很难看到灰色轮廓

通过在图中手动指定填充,可以在未指定填充时控制图例中的填充颜色。

ggplot(dat)+
  geom_bar(aes(id, color=var1), fill="white")+
  theme_light()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明 我认为有一种方法可以使用主题中的参数来控制它,但是可以theme(legend.background=element_rect())控制整个图例的背景(这是正确的)

ggplot(dat)+
  geom_bar(aes(id, color=var1, fill=var2))+
  scale_color_manual(values=c("A"="black", "B"="grey"))+
  theme_light()+
  theme(legend.background = element_rect(fill="blue"))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

同样在主题中,theme(legend.key = element_rect(fill="blue"))var2在图例中的框周围添加一条细蓝线,legend.box控制多个图例的排列(“水平”或“垂直”),并theme(legend.box.background = element_rect(fill="blue"))为图例var1var2图例之间的背景着色。

我认为图例可能使用 NA 的默认值进行填充,所以我尝试使用手动指定它 scale_color_discrete()

ggplot(dat)+
  geom_bar(aes(id, color=var1, fill=var2))+
  scale_color_manual(values=c("A"="black", "B"="grey", 
                              na.translate=TRUE, na.value = "white"))+
  theme_light()
Run Code Online (Sandbox Code Playgroud)

看起来和第一个情节一样。

这似乎应该由theme()or 中的参数控制scale_color_manual,但我似乎无法弄清楚。
干杯

r ggplot2

6
推荐指数
1
解决办法
3480
查看次数

标签 统计

r ×2

ggplot2 ×1

google-maps ×1

shiny ×1