小编Mar*_*k R的帖子

使用 ggplot 在绘图中禁用悬停文本

我想部分禁用绘图中的悬停文本,将其限制为 ggplot 中的一个数据框或几何图形。在下面的情况下,我只想将鼠标悬停在“城市”而不是地图轮廓上。我在 Python 中看到了一个解决方案,但在 R 中没有看到。我将如何控制图像大小以保持地图尺寸正确?https://plot.ly/ggplot2/interactive-tooltip/ 上的地图演示似乎并不在意!

library(mapdata)
library(ggplot2)
library(plotly)


Japan <- map_data("world2Hires", region="Japan")

Longitude <- 140
Latitude <- 36.5
df <- cbind.data.frame(Longitude,Latitude)
df$Name <- "Tokyo"
df$Name_2 <- "T?ky?"



XX <- ggplot() + geom_polygon(data=Japan, aes(x=long, y=lat, group=group), color="black", fill="white", text="") + coord_equal() + geom_point(data=df, aes(x=Longitude, y=Latitude, text=Name), color="green")
XX 
ggplotly(XX)  ##How to get hover text only on df not Japan, and remove "[object Object]" 

XX <- ggplot() + geom_polygon(data=Japan, aes(x=long, y=lat, group=group), color="black", fill="white", text="") + coord_equal() …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 plotly

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

从R列表中提取属性

我担心我会遗漏一些明显的东西。。。我在R中有一个结构清单

List of 752
 $ : Named chr "??"
  ..- attr(*, "names")= chr "??"
 $ : Named chr "??"
  ..- attr(*, "names")= chr "??"
 $ : Named chr "??"
Run Code Online (Sandbox Code Playgroud)

使用unlist(my_object)可以轻松获得列表的顶层。但是如何捕获属性?我可以对每个元素n使用unlist(attributes(my_object [[n]]))。但是,肯定有一种快速的方法可以将其放入数据帧。我想念什么?

r list dataframe

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

在 sf 包中查找带有多边形的点

我正在尝试在 sf 中创建一个简单的多边形并仅选择该多边形内的点。我在这里做错了什么?

    library(concaveman)
    library(ggplot2)


    foo.df <- data.frame("long"=c(136,137,137,136),"lat"=c(36,36,37,37))
    foo.sf <- st_as_sf(foo.df, coords = c("long","lat"))
    poly <- concaveman(foo.sf) ## in case points are out of order
    point.df <- data.frame("long"=c(136.2,136.5,137.5),"lat"=c(36.5,36.5,36.5))
    point.sf <- st_as_sf(point.df, coords = c("long","lat"))

good_points <- st_join(point.sf,poly,join=st_within)
Run Code Online (Sandbox Code Playgroud)

st_join函数似乎没有做任何事情

  ggplot() + 
  geom_sf(data = poly) +
  geom_sf(data= good_points)
Run Code Online (Sandbox Code Playgroud)

问题不在于凹人包

good_points <- st_join(point.sf,foo.sf,join=st_within)

ggplot() + 
  geom_sf(data = poly) +
  geom_sf(data= good_points)
Run Code Online (Sandbox Code Playgroud)

尝试创建多边形会引发错误

another_poly <- st_polygon(list(as.matrix(foo.df)))
good_points <- st_join(point.sf,another_poly,join=st_within)
Run Code Online (Sandbox Code Playgroud)

我缺少什么?

r geospatial r-sp r-sf

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

鼠标悬停在阴谋和闪亮

我有一些图形代码,可以在RStudio和RPubs上完美地调用鼠标悬停时数据帧的行名...但是当嵌入Shiny中时却没有.基本代码是:

require(shiny)
require(plotly)
Trial <- read.table("http://history.emory.edu/RAVINA/Aozora/Data/Trial.txt", row.names = 1)
plot_ly(Trial, x=V1, y=V2, text=rownames(Trial), mode = "markers") 
Run Code Online (Sandbox Code Playgroud)

然而,Shiny版本已完全死亡.我错过了什么?

require(shiny)
require(plotly)
Trial <- read.table("http://history.emory.edu/RAVINA/Aozora/Data/Trial.txt", row.names = 1)

ui <- fluidPage(
  titlePanel("Word Frequency Analysis for Meiji-era Authors"),
      mainPanel(
      plotOutput("plot"),
      dataTableOutput("Print")
    )
  )


server <- function(input, output){


  output$plot<-renderPlot({
    p <- plot_ly(Trial, x=V1, y=V2, text=rownames(Trial), mode = "text")
    plot(p)
  })
  output$Print<-renderDataTable({Trial})



}

shinyApp(ui = ui, server = server)
Run Code Online (Sandbox Code Playgroud)

r rstudio shiny plotly

5
推荐指数
1
解决办法
1029
查看次数

sf 溶解/删除 POLYGON 的内边界

此代码创建两个组合形状所需的轮廓

square.df <- data.frame("x"=c(0,0,1,1,0),
           "y"=c(0,1,1,0,0),
           "ID"=rep("square",5))
square <- st_cast(st_combine(st_as_sf(square.df,coords = c("x", "y"))),"POLYGON")
plot(square)

triangle.df <- data.frame("x"=c(0,1,0.5,0),
                        "y"=c(1,1,1.5,1),
                        "ID"=rep("triangle",4))
triangle <- st_cast(st_combine(st_as_sf(triangle.df,coords = c("x", "y"))),"POLYGON")
plot(triangle)

plot(st_union(triangle,square))
Run Code Online (Sandbox Code Playgroud)

但是如果我的数据框有多种形状,就像这样呢?

shapes.df <- rbind(square.df,triangle.df)
shapes <- st_cast(st_combine(st_as_sf(shapes.df,coords = c("x", "y"))),"POLYGON")
plot(shapes)
Run Code Online (Sandbox Code Playgroud)

我要创建什么 sf 对象以及如何获取组合多边形的轮廓?

r spatial r-sp r-sf

3
推荐指数
1
解决办法
2570
查看次数

R中的apply()vs.sweep()

我在编写笔记以比较apply()和scan()时发现了以下奇怪的区别。为了产生相同的结果,sweep()需要MARGIN = 1,而apply则需要MARGIN =2。另外,指定矩阵的参数是apply()中的大写字母X,而sweep()中的小写字母。

my.matrix <- matrix(seq(1,9,1), nrow=3)
row.sums <- rowSums(my.matrix)
apply.matrix <- apply(X = my.matrix, MARGIN = 2, FUN = function (x) x/row.sums)
sweep.matrix <- sweep(x = my.matrix, MARGIN = 1, STATS = rowSums(my.matrix), FUN="/")
apply.matrix - sweep.matrix ##yup same matrix
Run Code Online (Sandbox Code Playgroud)

slip()不是“应用类型”函数吗?这是另一个R怪癖还是我迷失了方向?

row r apply

2
推荐指数
1
解决办法
1560
查看次数

用 sf: st_intersection 分割线或多边形不起作用?

我正在尝试完成沿乌拉尔山脉分裂俄罗斯这一看似简单的任务,但我一定是误解了 sf_intersection 中的一些基本内容。我什至无法分割线,更不用说创建两个新的多边形

rm(list=ls())
library(rworldmap)
library(tidyverse)
library(sf)

setwd("/Users/mr56267/Documents/UT_web/TLAH_Maps_2023/Mapping_textbook")
world_sp <- fortify(getMap())




world_sf <- world_sp %>% st_as_sf(coords = c("long", "lat"), crs = 4326, row.names="group") %>%
  group_by(group) %>% summarise(geometry = st_combine(geometry)) %>% st_cast("POLYGON")

ggplot() +
  geom_sf(data = world_sf)

world_robinson <- st_transform(world_sf, 
                               crs = '+proj=robin +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs')



Russia.sf <- world_robinson$geometry[which(world_robinson$group=="Russia.1")]
### good to here
### now split Russia on Urals

https://raw.githubusercontent.com/sashatrubetskoy/asia_europe_border/master/asia_europe_border.geojson
Urals.sf <- st_read("https://raw.githubusercontent.com/sashatrubetskoy/asia_europe_border/master/asia_europe_border.geojson")
Urals.sf <- st_transform(Urals.sf, crs = st_crs(world_robinson$geometry[which(world_robinson$group=="Russia.1")]))
Russia_line.sf <- st_cast(Russia.sf,"MULTILINESTRING")

intersection_points <- st_intersection(Russia_line.sf,Urals.sf)
intersection_points
st_intersects(intersection_points,Russia_line.sf) …
Run Code Online (Sandbox Code Playgroud)

r geospatial ggplot2 r-sf

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

标签 统计

r ×7

r-sf ×3

geospatial ×2

ggplot2 ×2

plotly ×2

r-sp ×2

apply ×1

dataframe ×1

list ×1

row ×1

rstudio ×1

shiny ×1

spatial ×1