我想在R中使用PLOTLY创建一个雷达图.我创建了用于绘图的数值和短名称(列‘QUESTEM_SHORT’和‘VALUES’)(不是为了使图形美观过载,因为在实际数据中标签要长得多),但对于绘图中的弹出窗口,我想要显示全值(列‘QUESTS’和‘VALUES_LABEL’),这可能吗?

现在,它将'question_short'中的值显示为theta,将'question_short'中的值显示为r,这是用于绘图的值.参见图片:

enter image description here

在弹出窗口中,Value Label:应该是‘Low’,问题是:应该‘愿意工作’.

以下是示例代码:


plot_df <- data.frame(

  questions = c('level of expertise?', 'willing to work', 'motivation', 'Its friday', 'Chuck Norris'),
  question_short = c('LOE', 'WTW', 'mtvtn', 'frdy', 'ChuNor'),
  values_label = c("Very Low", "Low", "Medium", "High", "Very High"),
  values = c(0:4)
)
 
fig_topic <- plot_ly(
  type = 'scatterpolar',
  fill = 'toself'
)  %>%
  add_trace(
    r = plot_df$values,
    theta = plot_df$question_short,
    name = plot_df$group_id,
    hovertemplate = paste('<i>Value label</i>: %{r}',
                          '<br><b>Question</b>: %{theta}<br>')
  )
 
fig_topic

谢谢!

推荐答案

您可以使用text=属性创建工具提示,该属性允许使用数据列的"较长"版本,并设置hoverinfo="text"以在工具提示中仅显示text属性:

library(plotly)

fig_topic <- plot_ly(
  plot_df,
  type = "scatterpolar",
  fill = "toself"
) %>%
  add_trace(
    r = ~values,
    theta = ~question_short,
    #name = ~group_id,
    text = ~paste0(
      "<i>Value label</i>:", values_label,
      "<br><b>Question</b>: ", questions, "<br>"
    ),
    hoverinfo = "text"
  )

fig_topic

enter image description here

R相关问答推荐

使用gggplot 2在R中重新调整面板和y轴文本大小

R中的子集文件—读取文件名索引为4位数字序列,例如0001到4000,而不是1到4000)

使用case_match()和char数组重新编码值

如果第一个列表中的元素等于第二个列表的元素,则替换为第三个列表的元素

我如何才能找到FAMILY=POISSON(LINK=&Q;LOG&Q;)中的模型预测指定值的日期?

用关联字符串替换列名的元素

即使硬币没有被抛出,也要保持对其的跟踪

根据1个变量绘制 colored颜色 发散的 map ,由另一个变量绘制饱和度,ggplot2不工作

R -在先前group_by级别汇总时获取最大大小子组的计数

解析嵌套程度极高的地理数据

将列的值乘以在不同数据集中找到的值

如何构建一个for循环来循环处理动物ID?

用满足特定列匹配的另一行替换NA行

是否从列中删除★符号?

使用dqur在不同变量上创建具有多个条件的变量

如何将字符类对象中的数据转换为R中的字符串

从字符串01JAN2021创建日期

如何在R中添加标识连续日期的新列

我有2011-2022年的年度数据.如何计算最低年份和最高年份之间的差额?

R data.设置函数&;连接中的列值而不使用for循环的表方法?