【问题标题】:Avoid converting numbers to dates in plotly避免在情节中将数字转换为日期
【发布时间】:2020-04-07 21:21:14
【问题描述】:

我有一个矩阵,我想为它创建一个热图。行名称是分析,列名称是 CASRN,格式为“131-55-5”

我的矩阵看起来像这样 the data matrix for the heatmap

出于某种原因,情节认为这些是日期,并将它们转换为 2000 年 3 月之类的日期,并给了我一个空的情节。

在我将我的数据框转换为我检查的矩阵之前,所有列都是因素。 有什么办法可以确保在绘制矩阵时我的数字不会变成日期?

这是我用于热图的代码

plot_ly(x=colnames(dm_new2), y=rownames(dm_new2), z = dm_new2, type = "heatmap") %>%
  layout(margin = list(l=120))

【问题讨论】:

    标签: r matrix plotly


    【解决方案1】:

    使用一些随机数据来模拟您的数据集。只需将您的矩阵放入数据框中。试试这个:

    set.seed(42)
    
    library(plotly)
    library(dplyr)
    library(tidyr)
    
    dm_new2 <- matrix(runif(12), nrow = 4, dimnames = list(LETTERS[1:4], c("131-55-5", "113-48-4", "1582-09-8")))
    
    # Put matrix in a dataframe
    dm_new2 <- as.data.frame(dm_new2) %>% 
      # rownames to column
      mutate(x = row.names(.)) %>%
      # convert to long format
      pivot_longer(-x, names_to = "y", values_to = "value")
    
    dm_new2 %>% 
      plot_ly(x = ~x, y = ~y, z = ~value, type = "heatmap") %>%
      layout(margin = list(l=120))
    

    reprex package (v0.3.0) 于 2020 年 4 月 8 日创建

    【讨论】:

    • 成功了。太感谢了。我什至没有想过将其保留为数据框!我一直在将我的数据转换为矩阵。
    • 我的荣幸。如果你想帮我一个忙:将问题标记为已回答。除了给我一些(额外的)功劳外,它还向其他有类似问题的人表明该解决方案有效,并将该问题从仍在等待答案的问题队列中删除。
    猜你喜欢
    • 1970-01-01
    • 2020-11-23
    • 1970-01-01
    • 2014-11-16
    • 2015-10-21
    • 1970-01-01
    • 2020-03-11
    • 1970-01-01
    相关资源
    最近更新 更多