plotly hoverinfo在Windows中不起作用,但在MacOS上起作用

时间:2018-09-20 17:38:24

标签: r maps plotly

我正在尝试使用plotly在美国地图上绘制一些数据,以便当鼠标悬停在该位置上时显示一些信息。

信息传递到text,然后通过hoverinfo = "text"传递到绘图。

有效的方法

  1. 在MacOS环境中制作的图,在MacOS环境中查看
  2. 在MacOS环境中制作的图,在Windows环境中查看

什么不起作用

  1. 在Windows环境中制作的图,在Windows环境中查看

我尝试在Windows中使用Google Chrome,Internet Explorer和Firefox,在MacOS中使用Safari和Google Chrome浏览器。

在Windows环境中制作的图,在Windows环境中查看(谷歌浏览器):Windows_noinfo

在MacOS环境中制作的图,在Windows环境中查看(谷歌浏览器): enter image description here

注意:上图中的某些数据点是不同的,因为我修改了几列,但基础数据格式和代码是相同的。

我无法共享数据,因此下面是一些使用mtcars的示例代码,它导致与上述相同的行为。

数据

> dput(dt)
structure(list(mpg = c(21, 21, 22.8, 21.4, 18.7, 18.1, 14.3, 
24.4, 22.8, 19.2, 17.8, 16.4, 17.3, 15.2, 10.4, 10.4, 14.7, 32.4, 
30.4, 33.9, 21.5, 15.5, 15.2, 13.3, 19.2, 27.3, 26, 30.4, 15.8, 
19.7, 15, 21.4), cyl = c(6, 6, 4, 6, 8, 6, 8, 4, 4, 6, 6, 8, 
8, 8, 8, 8, 8, 4, 4, 4, 4, 8, 8, 8, 8, 4, 4, 4, 8, 6, 8, 4), 
    disp = c(160, 160, 108, 258, 360, 225, 360, 146.7, 140.8, 
    167.6, 167.6, 275.8, 275.8, 275.8, 472, 460, 440, 78.7, 75.7, 
    71.1, 120.1, 318, 304, 350, 400, 79, 120.3, 95.1, 351, 145, 
    301, 121), hp = c(110, 110, 93, 110, 175, 105, 245, 62, 95, 
    123, 123, 180, 180, 180, 205, 215, 230, 66, 52, 65, 97, 150, 
    150, 245, 175, 66, 91, 113, 264, 175, 335, 109), drat = c(3.9, 
    3.9, 3.85, 3.08, 3.15, 2.76, 3.21, 3.69, 3.92, 3.92, 3.92, 
    3.07, 3.07, 3.07, 2.93, 3, 3.23, 4.08, 4.93, 4.22, 3.7, 2.76, 
    3.15, 3.73, 3.08, 4.08, 4.43, 3.77, 4.22, 3.62, 3.54, 4.11
    ), wt = c(2.62, 2.875, 2.32, 3.215, 3.44, 3.46, 3.57, 3.19, 
    3.15, 3.44, 3.44, 4.07, 3.73, 3.78, 5.25, 5.424, 5.345, 2.2, 
    1.615, 1.835, 2.465, 3.52, 3.435, 3.84, 3.845, 1.935, 2.14, 
    1.513, 3.17, 2.77, 3.57, 2.78), qsec = c(16.46, 17.02, 18.61, 
    19.44, 17.02, 20.22, 15.84, 20, 22.9, 18.3, 18.9, 17.4, 17.6, 
    18, 17.98, 17.82, 17.42, 19.47, 18.52, 19.9, 20.01, 16.87, 
    17.3, 15.41, 17.05, 18.9, 16.7, 16.9, 14.5, 15.5, 14.6, 18.6
    ), vs = c(0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 
    0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1), am = c(1, 
    1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
    0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1), gear = c(4, 4, 4, 3, 
    3, 3, 3, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 4, 4, 4, 3, 3, 3, 
    3, 3, 4, 5, 5, 5, 5, 5, 4), carb = c(4, 4, 1, 1, 2, 1, 4, 
    2, 2, 4, 4, 3, 3, 3, 4, 4, 4, 1, 2, 1, 1, 2, 2, 4, 2, 1, 
    2, 2, 4, 6, 8, 2), lat = c(37.651974, 32.553769, 36.069144, 
    40.992647, 41.714795, 32.553769, 33.85455, 33.56375, 39.764189, 
    42.89606, 41.04349, 35.96064, 21.40877, 41.18389, 28.545179, 
    45.507856, 42.504844, 46.25024, 37.388556, 26.597956, 21.399548, 
    40.992647, 40.992647, 33.57786, 41.720684, 35.169255, 32.553769, 
    39.743291, 32.29876, 36.862603, 61.220018, 43.088821), lon = c(-97.258997, 
    -90.138906, -79.765156, -74.312443, -90.026414, -90.138906, 
    -84.21714, -81.80789, -84.076154, -78.886424, -81.524017, 
    -83.92074, -157.7899, -96.03113, -81.373291, -122.690794, 
    -71.201539, -94.25055, -122.01774, -81.846331, -158.015151, 
    -74.312443, -74.312443, -101.85517, -83.569359, -89.990415, 
    -90.138906, -105.069027, -90.18481, -119.734947, -149.855702, 
    -82.490486)), .Names = c("mpg", "cyl", "disp", "hp", "drat", 
"wt", "qsec", "vs", "am", "gear", "carb", "lat", "lon"), row.names = c(NA, 
-32L), class = c("data.table", "data.frame"))

代码

libary(plotly)
library(data.table)

plt_layout<- list(
  scope = 'usa',
  projection = list(type = 'albers usa'),
  showland = TRUE,
  landcolor = toRGB("gray95"),
  subunitcolor = toRGB("gray85"),
  countrycolor = toRGB("gray85"),
  countrywidth = 0.5,
  subunitwidth = 0.5
)

pl <- plot_geo(data = dt) %>%
  add_markers(
    x = ~lon, y = ~lat,
    text = ~paste(mpg, cyl, wt, carb,
                  sep = '<br />'), 
    symbol = I("circle"), size = ~disp, opacity = 0.5, hoverinfo = "text"
  ) %>%
  layout(
    title = 'mtcars on map', geo = plt_layout
  )

htmlwidgets::saveWidget(widget = as_widget(pl), file = 'samplemap.html')

输出

enter image description here

0 个答案:

没有答案