我想在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值正确。但是带注释的文本却以某种方式从一栏跳到另一栏...
我认为问题出在
add_annotation(text=...)
但是我不知道如何解决它们。请帮助...
此外,有谁知道如何使注释文本根据如下背景颜色自动更改颜色?
感谢您的帮助! :)