R 使用ggplot在plotly中禁用悬停文本
我想部分禁用plotly中的悬停文本,将其限制为ggplot中的一个数据帧或geom。在下面的例子中,我只想将鼠标悬停在“城市”上,而不是地图轮廓上。我已经在Python中看到了一个解决方案,但不是R。我如何控制图像大小以保持绘图中的贴图尺寸正确?在的地图演示似乎不在乎R 使用ggplot在plotly中禁用悬停文本,r,ggplot2,plotly,R,Ggplot2,Plotly,我想部分禁用plotly中的悬停文本,将其限制为ggplot中的一个数据帧或geom。在下面的例子中,我只想将鼠标悬停在“城市”上,而不是地图轮廓上。我已经在Python中看到了一个解决方案,但不是R。我如何控制图像大小以保持绘图中的贴图尺寸正确?在的地图演示似乎不在乎 library(mapdata) library(ggplot2) library(plotly) Japan <- map_data("world2Hires", region="Japan") Longitude
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() + geom_point(data=df, aes(x=Longitude, y=Latitude, text=Name_2), color="green")
XX
ggplotly(XX) ##Non-Ascii text breaks hover
库(mapdata)
图书馆(GG2)
图书馆(绘本)
日本在阅读您的问题之前,首先我必须承认我不知道plotly和mapdata软件包。但这些看起来非常有用,我开始四处玩,最后制作了一些有用的东西
我认为您出现的一些问题是因为您使用了ggplotly
功能,而不是我在解决方案中使用的直接plotly
界面
数据准备
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ō"
然后添加成本行并禁用悬停信息(hoverinfo=“none”
):
p尽管这证实了我的感觉,即plotly比ggplotly更可靠,但它工作得非常完美。你的回答也有助于回答我关于如何控制图像大小的问题。这是layout()中的高度和宽度参数,很高兴我能提供帮助。显示问题解决了吗?是的,它可以在本地和远程服务器上工作。谢谢接下来是与Shiny的集成!签出“什么样的精确参数可用于地理对象”@bluefishThank我将其添加到了@user1561393的答案中
g <- list(
showland = F,
coastlinewidth = 0,
lonaxis = list(
showgrid = TRUE,
gridwidth = 0.5,
range = c(125, 145.8224),
dtick = 5
),
lataxis = list(
showgrid = TRUE,
gridwidth = 0.5,
range = c(25, 45.52),
dtick = 5
)
)
p <- plot_ly(data = df,lon = Longitude,lat = Latitude,name="City",
text =Name_2,type = "scattergeo",mode = "markers")
p <- add_trace(data=Japan,lon = long,lat = lat,
mode = "lines",group=group,line = list(color=toRGB("black"),width = 0.5),
type = "scattergeo", hoverinfo = "none",showlegend = F)
p <- layout(p, geo = g)