非数值输出的热散点图

时间:2019-11-15 21:03:00

标签: r heatmap scatter-plot

Image of excel data set

我在excel中有一张表,其中有100列和100行。该列从0%开始,直到100%。对于该行相同,从0%开始直到100%。这是一种双向敏感性分析,即,如果x(列变量)= 10%和y(行变量)= 30%,哪种药物是最佳选择。

我有100 x 100的桌子,桌子上散布着四种不同药物的名称。我想将此数据放入R中并创建一个散点图,本质上是一个具有10000个较小正方形的正方形。然后,我希望R根据对于X和Y组合最理想的药物为每个正方形着色。

我在10 x 10表中附加了显示相同示例的虚拟数据图像。

希望您能提供帮助!

1 个答案:

答案 0 :(得分:0)

您需要首先准备数据-使用pivot_longer()包中的tidyverse函数将数据读入,将列划分为行,然后可能需要进行一些清理增加百分比。

此后,绘图(使用ggplot2)本身可能非常简单。 geom_tile()函数是创建正方形的函数。

library(tidyverse)
# Create test data
df <- expand_grid(x = 1:100, y = 1:100) %>%
  mutate(drug = sample(LETTERS[1:4], size = 10000, replace = TRUE))

# Make the plot
df %>%
  ggplot(aes(x, y, fill = drug)) +
  geom_tile() 

Sample tile output