首页 > 解决方案 > 避免在情节中将数字转换为日期

问题描述

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

我的矩阵看起来像 热图的数据矩阵

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

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

这是我用于热图的代码

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

标签: rmatrixplotly

解决方案


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

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 包(v0.3.0)于 2020 年 4 月 8 日创建


推荐阅读