当前位置: 首页 > 知识库问答 >
问题:

在AddCirculeMarkers、ShinyR、传单地图中按nrow设置半径

谢昊乾
2023-03-14

我有几个城市的40万行数据(data)。我想可视化他们的位置,也不同的财产传单。例如,我想根据给定城市的样本数来设置圆圈大小。我得到了正确的位置,但我不能得到半径的变化。我在下面进行了尝试,其中CityCoordinateData是一个由3列组成的df:所有城市的单行,即Location,它们的Lon和Lat和unique(data$city)具有与CityCoordinateData$Location相同的元素

m<-leaflet() %>%
      addTiles() %>% 
      setView(20, 47, zoom = 13) %>% 
      addCircleMarkers(CityCoordinateData$Lon, CityCoordinateData$Lat, radius=nrow(data[grep(CityCoordinateData$Location, data$City),])

Grep似乎只使用第一个元素的nrow。我也试过这个,它开始运行,但永远不会结束:

radius=nrow(subdata[grep(paste(CityCoordinateData$Location,collapse = "|"), data$City, value=TRUE),]) 

感谢您的任何提示!

数据的一个示例可以像这样模拟:

CityCoordinateData <- data.frame(Location=as.factor(c("Dorog", "Eger", "Erd")), Lon=c(17,18,19), Lat=c(40,41,42))
data <- data_sample<-data.frame(City=as.factor(c("Dorog", "Eger", "Erd", "Dorog", "Dorog", "Eger")), Variable=c(11,12,13,14,15,16))

共有1个答案

宗翔宇
2023-03-14

您的数据每个位置有几个值。如果这是正确的,每个位置将有几个圆圈。这是我试过的代码。

library(leaflet)

CityCoordinateData <- data.frame(Location=c("Dorog", "Eger", "Erd"), 
                                 Lon=c(17,18,19), Lat=c(40,41,42))
data<-data_sample <- data.frame(City=c("Dorog", "Eger", "Erd", "Dorog", "Dorog", "Eger"), 
                                Variable=c(11,12,13,14,15,16))

names(CityCoordinateData)[1] <- c("City")

xy <- merge(CityCoordinateData, data)

leaflet(data = xy) %>%
  addTiles() %>%
  addCircleMarkers(~Lon, ~Lat, radius = ~Variable)
 类似资料:
  • 我试图在一个闪亮的应用程序中使用一个用R创建的传单地图来可视化一个货物从起点到目的地。 我想添加一个半径的圆标记,它对应于、odist和ddist变量,这些变量来自一个名为main()的反应式数据表 下面是一个相关的快照和附带的代码:

  • 我在RShiny中的中有一个地图,其中绘制了标记,一旦我单击一个标记,它就会在地图上添加圆圈,显示所有与标记相关的点。 我想做的是设置地图的缩放/视图,使所有相关的圆圈都可见。 标记的圈数因标记而异,有些标记有1或2个圈,而有些标记有更多圈。此外,圆圈的位置在美国各地不同,所以它们可以放在一个城市或另一个州。 map=带标记的原始映射Df=lng图中所选标记相关性质的圆的lng 我想设置缩放级别,

  • 我想使用ControlTemplate创建一个圆角按钮。这是我的代码,当我的宽度和高度等于30时,它能完美地工作。请问,是否可以将RadiusX和RadiusY设置为按钮的一半(例如,RadiusX={width/2})?

  • 问题内容: 我只是编写了一个代码(使用TKinter)创建一个窗口并显示一个工作按钮。 但是我想在这个按钮下面有多个按钮。 如何设置按钮的行和列?我尝试添加,但是那行不通。 谢谢 问题答案: Astynax是正确的。要遵循您给出的示例: 应该创建3行按钮。使用网格比使用包好得多。但是,如果在一个按钮上使用网格,而在另一按钮上使用网格,则将不起作用,并且会出现错误。

  • 我有一个带有标记的映射,由一个json文件生成,其中包含一个数值文本。对于标记生成,我使用Beaufify标记插件。这是我使用的代码的一部分 我想用最好和最干净的方法,改变选项上的变量文本('markers[I].temperatura'),在按钮上使用onclick操作。

  • 操作步骤: ①进入编辑地图页面点击左上方地图名称。 ②进入编辑状态。 ③编辑完成后,点击回车或是√,地图名称修改成功。 提示 ●地图名称不能少于2个字符。 操作动图: [查看原图]