注释在R Shiny中的绘图热图中未正确映射

时间:2018-12-20 19:51:27

标签: r annotations plotly heatmap shinydashboard

我想在R Shiny中绘制带有热图的数据框,并标注z值。 在python中,我可以很好地做到这一点,但是在R中,我却不能,我到处搜索还没有弄清楚如何实现它。

我创建了如下数据框:

index_y <- sort(unique(df2[,"Rank"]))
index_x <- sort(unique(df2[,"Gender"]))

plot_summary <- data.frame(matrix(ncol = length(index_x)+1, nrow = length(index_y)))
colnames(plot_summary) <- c(as.character(index_x),"Index_y")
plot_summary$Index_y=index_y


for (i in 1:length(index_y)){
  for (j in 1:length(index_x)){

    plot_summary[i,j]=nrow(
      df2[(df2[,"Rank"] %in% index_y[i])&(df2[,"Gender"] %in% index_x[j]),]
    )
  }
}


    > plot_summary
       F      M       Index_x
    1  11258  18753       0
    2  44720  79765       1
    3  35411  43334       2
    4  74847 140577       3
    5  28425  41789       4
    6  34584  50822       5
    7 514662 654434       6

我想将其绘制在带有z值注释的R闪亮仪表板中。

  output$plot21 = renderPlotly(
  plot_ly(data=plot_summary,
          x=index_x,
          y=index_y,
          z=as.matrix(plot_summary[1:length(index_x)]),
          type = "heatmap",colors="YlGnBu") %>%
    add_annotations(x=index_x
                    ,y=index_y
                    ,text=as.matrix(plot_summary[1:length(index_x)])
                    ,showarrow=FALSE
                    ,align="center")%>%
    layout(title="heatmap"
           ,yaxis=list(title=input$attrib22)
           ,xaxis=list(title=input$attrib21)
    )
)

但是注释未正确映射。将鼠标悬停在单元格上时,z值正确。但是带注释的文本却以某种方式从一栏跳到另一栏...

heatmap

我认为问题出在

add_annotation(text=...)

但是我不知道如何解决它们。请帮助...


此外,有谁知道如何使注释文本根据如下背景颜色自动更改颜色?

annocolor

感谢您的帮助! :)

0 个答案:

没有答案