highcharter:突出显示组中的点

2024-04-26

使用时highcharter对于交互式绘图,如何指定组中的数据点必须一起突出显示?

library(highcharter)
library(dplyr)
library(tidyr)

dfr <- data.frame(sample=c("A","B","C","D"),part=c(2,3,4,6),cat=c(5,7,3,3))
dfr1 <- dfr %>% tidyr::gather(key=metric,value=value,-sample)
dfr1
#>   sample metric value
#> 1      A   part     2
#> 2      B   part     3
#> 3      C   part     4
#> 4      D   part     6
#> 5      A    cat     5
#> 6      B    cat     7
#> 7      C    cat     3
#> 8      D    cat     3

dfr1 %>%
  hchart(.,"scatter",hcaes(x=metric,y=value,group=factor(sample))) %>%
  hc_xAxis(type="category",title=list(text="Metrics"),crosshair=TRUE) %>%
  hc_yAxis(type="linear",title=list(text="Counts"),crosshair=TRUE) %>%
  hc_chart(zoomType="xy",inverted=T) %>%
  hc_tooltip(useHTML=TRUE,formatter = JS("function(){
                                         return('<b>Sample: </b>'+this.point.sample+'</br>')
                                         }"))

在此示例中,当我将鼠标悬停在蓝点(样本 A)上时,我希望所有其他蓝点(样本 A)也突出显示。

Created on 2022-03-11 by the reprex package https://reprex.tidyverse.org (v2.0.1)

Session info
sessioninfo::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#>  setting  value
#>  version  R version 4.1.0 (2021-05-18)
#>  os       Ubuntu 20.04.4 LTS
#>  system   x86_64, linux-gnu
#>  ui       X11
#>  language en_GB:en
#>  collate  en_GB.UTF-8
#>  ctype    en_GB.UTF-8
#>  tz       Europe/Stockholm
#>  date     2022-03-11
#>  pandoc   2.14.0.3 @ /usr/lib/rstudio/bin/pandoc/ (via rmarkdown)
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────
#>  package     * version date (UTC) lib source
#>  assertthat    0.2.1   2019-03-21 [1] CRAN (R 4.1.0)
#>  backports     1.4.1   2021-12-13 [1] CRAN (R 4.1.0)
#>  broom         0.7.11  2022-01-03 [1] CRAN (R 4.1.0)
#>  callr         3.7.0   2021-04-20 [1] CRAN (R 4.1.0)
#>  cli           3.1.0   2021-10-27 [1] CRAN (R 4.1.0)
#>  crayon        1.4.2   2021-10-29 [1] CRAN (R 4.1.0)
#>  curl          4.3.2   2021-06-23 [1] CRAN (R 4.1.0)
#>  data.table    1.14.2  2021-09-27 [1] CRAN (R 4.1.0)
#>  DBI           1.1.2   2021-12-20 [1] CRAN (R 4.1.0)
#>  digest        0.6.29  2021-12-01 [1] CRAN (R 4.1.0)
#>  dplyr       * 1.0.7   2021-06-18 [1] CRAN (R 4.1.0)
#>  ellipsis      0.3.2   2021-04-29 [1] CRAN (R 4.1.0)
#>  evaluate      0.14    2019-05-28 [1] CRAN (R 4.1.0)
#>  fansi         1.0.2   2022-01-14 [1] CRAN (R 4.1.0)
#>  fastmap       1.1.0   2021-01-25 [1] CRAN (R 4.1.0)
#>  fs            1.5.2   2021-12-08 [1] CRAN (R 4.1.0)
#>  generics      0.1.1   2021-10-25 [1] CRAN (R 4.1.0)
#>  glue          1.6.0   2021-12-17 [1] CRAN (R 4.1.0)
#>  highcharter * 0.9.4   2022-01-03 [1] CRAN (R 4.1.0)
#>  highr         0.9     2021-04-16 [1] CRAN (R 4.1.0)
#>  htmltools     0.5.2   2021-08-25 [1] CRAN (R 4.1.0)
#>  htmlwidgets   1.5.4   2021-09-08 [1] CRAN (R 4.1.0)
#>  httr          1.4.2   2020-07-20 [1] CRAN (R 4.1.0)
#>  igraph        1.2.11  2022-01-04 [1] CRAN (R 4.1.0)
#>  jsonlite      1.7.3   2022-01-17 [1] CRAN (R 4.1.0)
#>  knitr         1.37    2021-12-16 [1] CRAN (R 4.1.0)
#>  lattice       0.20-45 2021-09-22 [1] CRAN (R 4.1.0)
#>  lifecycle     1.0.1   2021-09-24 [1] CRAN (R 4.1.0)
#>  lubridate     1.8.0   2021-10-07 [1] CRAN (R 4.1.0)
#>  magrittr      2.0.1   2020-11-17 [1] CRAN (R 4.1.0)
#>  mime          0.12    2021-09-28 [1] CRAN (R 4.1.0)
#>  pillar        1.6.4   2021-10-18 [1] CRAN (R 4.1.0)
#>  pkgconfig     2.0.3   2019-09-22 [1] CRAN (R 4.1.0)
#>  processx      3.5.2   2021-04-30 [1] CRAN (R 4.1.0)
#>  ps            1.6.0   2021-02-28 [1] CRAN (R 4.1.0)
#>  purrr         0.3.4   2020-04-17 [1] CRAN (R 4.1.0)
#>  quantmod      0.4.18  2020-12-09 [1] CRAN (R 4.1.0)
#>  R.cache       0.15.0  2021-04-30 [1] CRAN (R 4.1.0)
#>  R.methodsS3   1.8.1   2020-08-26 [1] CRAN (R 4.1.0)
#>  R.oo          1.24.0  2020-08-26 [1] CRAN (R 4.1.0)
#>  R.utils       2.11.0  2021-09-26 [1] CRAN (R 4.1.0)
#>  R6            2.5.1   2021-08-19 [1] CRAN (R 4.1.0)
#>  reprex        2.0.1   2021-08-05 [1] CRAN (R 4.1.0)
#>  rlang         0.4.12  2021-10-18 [1] CRAN (R 4.1.0)
#>  rlist         0.4.6.2 2021-09-03 [1] CRAN (R 4.1.0)
#>  rmarkdown     2.11    2021-09-14 [1] CRAN (R 4.1.0)
#>  rstudioapi    0.13    2020-11-12 [1] CRAN (R 4.1.0)
#>  sessioninfo   1.2.2   2021-12-06 [1] CRAN (R 4.1.0)
#>  stringi       1.7.6   2021-11-29 [1] CRAN (R 4.1.0)
#>  stringr       1.4.0   2019-02-10 [1] CRAN (R 4.1.0)
#>  styler        1.6.2   2021-09-23 [1] CRAN (R 4.1.0)
#>  tibble        3.1.6   2021-11-07 [1] CRAN (R 4.1.0)
#>  tidyr       * 1.1.4   2021-09-27 [1] CRAN (R 4.1.0)
#>  tidyselect    1.1.1   2021-04-30 [1] CRAN (R 4.1.0)
#>  TTR           0.24.3  2021-12-12 [1] CRAN (R 4.1.0)
#>  utf8          1.2.2   2021-07-24 [1] CRAN (R 4.1.0)
#>  vctrs         0.3.8   2021-04-29 [1] CRAN (R 4.1.0)
#>  webshot       0.5.2   2019-11-22 [1] CRAN (R 4.1.0)
#>  withr         2.4.3   2021-11-30 [1] CRAN (R 4.1.0)
#>  xfun          0.29    2021-12-14 [1] CRAN (R 4.1.0)
#>  xml2          1.3.3   2021-11-30 [1] CRAN (R 4.1.0)
#>  xts           0.12.1  2020-09-09 [1] CRAN (R 4.1.0)
#>  yaml          2.2.1   2020-02-01 [1] CRAN (R 4.1.0)
#>  zoo           1.8-9   2021-03-09 [1] CRAN (R 4.1.0)
#> 
#>  [1] /home/user/miniconda3/envs/r-4.1/lib/R/library
#> 
#> ──────────────────────────────────────────────────────────────────────────────

我知道已经过去很多时间了,但万一还有人对此感兴趣……

另一种解决方案 https://stackoverflow.com/a/24178041/3460670这建议使用共享工具提示的格式化程序。我认为这可以在这里进行调整。

当鼠标悬停在组内的一个点上时,同一组中的所有点都会突出显示。

library(highcharter)
library(tidyverse)

dfr <- data.frame(sample=c("A","B","C","D"),part=c(2,3,4,6),cat=c(5,7,3,3))
dfr1 <- dfr %>% pivot_longer(cols = -sample, names_to = "metric")
dfr1

dfr1 %>%
  hchart(.,"scatter",hcaes(x=metric,y=value,group=factor(sample))) %>%
  hc_xAxis(type="category",title=list(text="Metrics"),crosshair=TRUE) %>%
  hc_yAxis(type="linear",title=list(text="Counts"),crosshair=TRUE) %>%
  hc_chart(zoomType="xy",inverted=T) %>%
  hc_tooltip(useHTML=TRUE,formatter = JS(
    "function(args){
      var this_point_index = this.series.data.indexOf(this.point);
      var this_series_index = this.series.index;
      var that_series_index = this.series.index == 0 ? 1 : 0;
      var that_series = args.chart.series[that_series_index];
      var that_point = that_series.data[this_point_index];
      return ('<b>Sample: </b>'+this.point.sample+'</br>');
    }"
  ))

会话信息:

R version 4.1.3 (2022-03-10)
Platform: x86_64-apple-darwin17.0 (64-bit)
Running under: macOS Monterey 12.2.1

Matrix products: default
LAPACK: /Library/Frameworks/R.framework/Versions/4.1/Resources/lib/libRlapack.dylib

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] forcats_0.5.1     stringr_1.4.0     dplyr_1.0.7       purrr_0.3.4      
 [5] readr_2.1.0       tidyr_1.1.4       tibble_3.1.4      ggplot2_3.3.5    
 [9] tidyverse_1.3.1   highcharter_0.9.4

loaded via a namespace (and not attached):
 [1] httr_1.4.2         jsonlite_1.8.0     viridisLite_0.4.0 
 [4] modelr_0.1.8       shiny_1.7.1        assertthat_0.2.1  
 [7] TTR_0.24.2         cellranger_1.1.0   yaml_2.2.1        
[10] pillar_1.6.2       backports_1.2.1    lattice_0.20-45   
[13] glue_1.6.0         rlist_0.4.6.1      digest_0.6.29     
[16] RColorBrewer_1.1-2 promises_1.2.0.1   rvest_1.0.1       
[19] colorspace_2.0-2   htmltools_0.5.2    httpuv_1.6.4      
[22] plyr_1.8.6         pkgconfig_2.0.3    broom_0.7.9       
[25] haven_2.4.3        xtable_1.8-4       scales_1.1.1      
[28] openxlsx_4.2.4     later_1.3.0        tzdb_0.1.2        
[31] generics_0.1.0     ellipsis_0.3.2     withr_2.4.3       
[34] lazyeval_0.2.2     cli_3.0.1          quantmod_0.4.18   
[37] magrittr_2.0.2     crayon_1.4.2       readxl_1.3.1      
[40] mime_0.12          evaluate_0.14      GGally_2.1.2      
[43] fs_1.5.2           fansi_0.5.0        xml2_1.3.2        
[46] xts_0.12.1         tools_4.1.3        data.table_1.14.2 
[49] hms_1.1.0          lifecycle_1.0.1    plotly_4.9.4.1    
[52] reprex_2.0.1       munsell_0.5.0      zip_2.2.0         
[55] formattable_0.2.1  compiler_4.1.3     rlang_0.4.12      
[58] grid_4.1.3         rstudioapi_0.13    htmlwidgets_1.5.4 
[61] igraph_1.2.6       rmarkdown_2.10     gtable_0.3.0      
[64] DBI_1.1.2          reshape_0.8.8      curl_4.3.2        
[67] R6_2.5.1           zoo_1.8-9          lubridate_1.7.10  
[70] knitr_1.34         fastmap_1.1.0      utf8_1.2.2        
[73] stringi_1.7.4      Rcpp_1.0.8         vctrs_0.3.8       
[76] dbplyr_2.1.1       tidyselect_1.1.1   xfun_0.26  

Plot

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

highcharter:突出显示组中的点 的相关文章

  • 从因子转换时间/日期

    我希望将时间从因子转换为日期 对于示例数据框 date time lt structure list date structure c 1L 1L 1L 1L 1L 1L 1L 1L 1L Label 02 02 2013 class fa
  • 使用插入符号完全可重现的并行模型

    当我在插入符中运行 2 个随机森林时 如果设置随机种子 我会得到完全相同的结果 library caret library doParallel set seed 42 myControl lt trainControl method cv
  • mtext:使用布局时较小的标签描述

    使用 mtext 作为标签描述与使用 xlab 的作用不同 如何使 mtext 标签始终与使用 xlab 时的大小相同 无需始终定义 cex 参数 在下面的最小示例中 两个图的 cex cex lab 1 不过大小不同 layout mat
  • 使用 R 进行语言相关排序

    1 如何正确排序 任务是根据英文字母对美国州名缩写进行排序 但我注意到 R 根据某种操作系统语言或区域设置对列表进行排序 例如 在我的语言 立陶宛语 中 甚至拉丁语 非立陶宛语 字母的顺序也与英语字母表中的顺序不同 仅比较两个字母表中的非立
  • 相对于时间求平均值

    我有以下带有日期时间和相应值的数据集 时间间隔为每10分钟一次 我需要以 15 分钟的间隔生成新行 例如 15 40 的值为 599 15 50 的值为 594 因此需要在两者之间生成一个新行 即 15 45 的平均值为 599 和 594
  • 在 R 中将 ascii 数字转换为字符串

    要将 R 中的字符串转换为 ascii 代码 我通常使用 gt strtoi charToRaw abcd 16L 1 97 98 99 100 是否有一个函数可以做相反的事情 即 gt myDesiredFunc c 97 98 99 1
  • R 彩色树状图建议?

    我想制作彩色树状图 但尚未找到足够的库 http addictedtor free fr graphiques RGraphGallery php graph 79 http addictedtor free fr graphiques R
  • 在模块中使用shiny的renderUI

    这是我在 stackoverflow 上的第一个问题 我在闪亮 1 0 5 中遇到模块和 renderUI 的问题 当我在中使用 renderUI 时 Main Part ui lt bootstrapPage uiOutput Dynam
  • 如何将第一行更改为R中的标题?

    我有下表 X 5 X 6 X 7 X 8 X 9 X 10 X 11 X 12 X 13 17 Zip CuCurrent PaCurrent PoCurrent Contact Ext Fax email Status 18 74136
  • Databricks:如何从 R Dataframe 切换到 Pandas Dataframe(同一笔记本中的 R 到 python)

    我正在 Databricks 笔记本中编写 R 代码 该代码在 R 中执行多项操作 清理数据帧后 我想使用 python 在 python 单元中调用它 因此使用 python 代码继续对数据帧进行操作 因此 我想在 python 块内将我
  • 替换 R 中内置函数的定义?

    sparcl 包使用标准 stat 包中的 kmeans 函数 我想让它使用我自己的 kmeans 实现 一种方法是编辑 sparcl 包本身中的代码 我宁愿避免这种情况 因为它会很混乱 而且我不确定如何在 R 中安装编辑过的代码 不幸的是
  • 如何以 HH:MM 表示小数时间

    我有一个十进制格式的时间 22 13以小时为单位 我想在 R 中将其表达为HH MM 我是说 22 08 贬值秒 有人可以帮助我吗 语法 02 0f是将值四舍五入为整数并使其始终为 2 个单位 所以 7 8分钟将转换为字符 08 x lt
  • 按列名称索引拆分数据框

    这是先前问题的变体 df lt data frame matrix rnorm 9 9 ncol 9 names df lt c c 1 d 1 e 1 a p b p c p 1 o1 2 o1 3 o1 我想按下划线 后面的column
  • 用 R 将矩阵划分为 N 个大小相等的块

    如何使用 R 将矩阵或数据帧划分为 N 个大小相等的块 我想水平切割矩阵或数据框 例如 给定 r 8 c 10 number of chunks 4 data matrix seq r c nrow r ncol c gt gt gt da
  • 如何使用 2 个不同的 y 轴进行绘图?

    我想在 R 中叠加两个散点图 以便每组点都有自己的 不同的 y 轴 即在图上的位置 2 和 4 中 但这些点看起来叠加在同一个图上 是否可以这样做plot Edit显示问题的示例代码 example code for SO question
  • R 使用 dplyr 将列移动到最后

    对于 data frame 来说n列 我希望能够从任何列移动列1 n 1 位置 成为第 n 列 即非最后一列成为最后一列 我也想使用dplyr 我想这样做而不是简单地键入所有列的名称 例如 data lt data frame a 1 5
  • mutate rowSums 排除一列

    我有一个像这样的数据框 gt df Source local data frame 4 x 4 a x y z 1 name1 1 1 1 2 name2 1 1 1 3 name3 1 1 1 4 name4 1 1 1 想要通过添加 x
  • R 语言与 php 集成以获取 R 的结果

    我有以下 R 脚本 assign data path data path lt C Users Owner Desktop R work assign valus to the following three percent train p
  • 条件格式 DT 中的样式

    我想根据 B 列中的值对 A 列中的行进行着色 下面的代码基于小插图中的示例Link https rstudio github io DT 010 style html 但仅显示两列的条件 mobile number by mobile f
  • 泛化 R %in% 运算符以匹配元组

    前几天我花了一段时间寻找一种方法来检查行向量是否包含在 R 中的某些行向量集中 基本上 我想概括 in 运算符来匹配元组而不是向量中的每个条目 例如 我想要 row vec c A 3 row vec 1 A 3 data set rbin

随机推荐

  • Android 位图图像缓存

    嗨 我正在 Android 中实现图像缓存 经历过这个 http developer android com training displaying bitmaps cache bitmap html http developer andr
  • 如何在滑块上方添加刻度和标签?

    我尝试使用 Slider 划分看起来不错 值 gt 50 10 20 但是 如何在滑块上方添加刻度和标签 Expect 勾选将根据滑块位置改变颜色 Actual Slider min 0 max 100 value value onChan
  • UITableView的separatorEffect属性有什么用?

    iOS 8 中的新功能是separatorEffect属性 您可以为其分配 UIVisualEffect 有谁知道这是做什么用的吗 我试过了 但我不认为它有任何 呃 视觉效果 我想知道完全相同的事情 所以我放了一个Github https
  • random.seed():它有什么作用?

    我有点困惑什么random seed 在 Python 中是这样的 例如 为什么下面的试验会 一致地 做他们所做的事情 gt gt gt import random gt gt gt random seed 9001 gt gt gt ra
  • wxPython:在现有 wx.Panel 上覆盖 wx.Panel 的好方法

    我有一个 wx Frame 其中有一个主 wx Panel 其中有几个小部件 我想要其中的一个按钮来启动 帮助面板 这个帮助面板可能是一个wx Panel 我希望它覆盖整个主wx Panel 不包括wx Frame的菜单栏 帮助按钮上应该有
  • 如何在 HTML 文件中包含 python 脚本?

    我该如何放置这个Python脚本 a f d s a x 1 scope vars for i in a scope x 1 print a x html 文件里面 像这样 如果你想创建一个html 不一定显示它 html file ope
  • pygame中盒子的连续移动

    我编写了以下代码来创建一个简单的游戏 当您单击键盘上的箭头时 一个框会在游戏中移动一个单位 我试图做到这一点 以便如果我按下任何箭头按钮 盒子将继续朝该方向移动 直到按下另一个箭头 因此 如果我按一次向右箭头而不是快速移动 50 像素 它将
  • 如何使用 ES6 样式导入添加外部 javascript 库?

    我无法准确理解如何在新的 ES6 项目中使用旧的 javascript 库 我正在查看一个使用 webpack 编译 使用 ES6 编写并使用 Babel 转译的 React 项目 每个组件都遵循import from 符号 我想在项目中使
  • 类继承命名

    我想继承 DevExpress ComboBoxEdit 控件 并且想知道将我的类命名为与 DevExpress 类相同的名称是否是不好的做法 这是派生类声明 using System using System Collections Ge
  • 如何在 Jenkins Freestyle 项目中使用可锁定资源插件中的 Groovy 表达式

    这个问题是针对旧版本提出的可锁定资源插件 https wiki jenkins ci org display JENKINS Lockable Resources Plugin 旧版本中的错误自2 1版本以来已得到修复 然而 没有描述如何在
  • 使用 Buildbot 支持多个存储库

    目前 Buildbot 不支持多个存储库 如果需要这一点 则需要运行单独的 Buildbot 实例 我仍然很好奇是否有人想出了一个创造性的解决方法来让这个功能正常工作 Update 这个答案最近收到了一些反对票 请注意 这个答案适用于 20
  • 刚刚通过 NuGet 更新了 ImageResizer,无法运行应用程序,因为它找不到 BundleAttribute

    我只是想更新 Azure 存储 但这意味着我需要更新 ImageResizer AzureReader 并更新应用程序以使用 Net 4 5 2 Azure 站点设置为 Net 4 6 现在我已经拥有了最新版本的所有内容 我已经清理并重建了
  • Prismic - 如何在不暴露访问令牌的情况下进行 API 调用

    我正在构建一个 vue js Web 应用程序 我想对我的 prismic 存储库进行相应的调用 但我不知道如何在不暴露我的访问令牌的情况下执行此操作 我正在使用所示的其余 api 方法here https prismic io docs
  • 背景图像:如果图像很小,如何填充整个div,反之亦然

    我有三个问题 当我尝试在较小尺寸的 div 中使用背景图像时 div 仅显示图像的一部分 如何显示图像的完整或特定部分 我有一个较小的图像 我想在更大的 div 中使用 但不想使用重复功能 CSS 有什么方法可以控制图像的不透明度吗 调整图
  • 如何隐藏 Akka 远程 Actor 来查找?

    我正在运行 Akka 2 0 2 微内核 并希望为不受信任的远程参与者实现身份验证方案 首先想到的是设置一个身份验证参与者 当身份验证成功时 该参与者会返回对工作参与者的引用 但是 我应该如何保护工作参与者不被简单地通过 actorFor
  • R:使用 devtools 自动将 import(data.table) 添加到 NAMESPACE

    如何正确添加import data table to the NAMESPACE自动使用文件devtools 一般来说 如果我的包使用data table我只是手动写入 但是无法使用 export and devtools document
  • 在 p5.js 中放大时精灵模糊

    我试图将 p5 js 中精灵的大小放大一点 系数 2 但渲染时它们看起来很模糊 显然 放大通常不是一个好主意 但是我已经成功地使像素化精灵在原始 JavaScript 中看起来清晰 基于这篇文章 https nluqo github io
  • 谁能用适当的例子向我解释 1NF、2NF、3NF、BCNF 规则?

    这是一个常见的面试问题 我遇到过一次面试 面试官给了我一张桌子 让我告诉他这张桌子是哪种范式 如果它在 NF中 那么将其归一化到下一个NF 我总是对这些正常形式的数据库感到困惑 谁能向我解释这些范式 并举出每个 NF 如何建模到表中的正确示
  • 使用 Jacoco 从 Sonar 的条件覆盖范围中排除 groovy slf4j 日志记录

    我们使用 SonarQube 5 1 和 Jacoco maven 插件 0 7 4 以及我们所有的 slf4j 日志记录语句 例如log debug Something happened 表明仅覆盖了 2 个分支中的 1 个 我明白这是因
  • highcharter:突出显示组中的点

    使用时highcharter对于交互式绘图 如何指定组中的数据点必须一起突出显示 library highcharter library dplyr library tidyr dfr lt data frame sample c A B