用于分类可视化的特定图

时间:2018-02-19 10:52:06

标签: r ggplot2 graph data-visualization

假设我每次观察有5个变量(在数据集中观察12次),我将这些观察分类为3级:

set.seed(123)

Dataset1 <- data.table(v1 = rnorm(12,-0.41,3.4),
                   v2 = rgamma(12,3,1.5),
                   v3 = rbeta(12,9,11),
                   v4 = rnig(12,12,33,23,13),
                   v5 = rpois(12,11),
                   class = floor(runif(12,1,4)))

我想像这样想象我的结果:

enter image description here

是否有可能在ggplot中进行这样的可视化?我不知道该怎么做。假设我们已经对每次观察进行了标准化。

1 个答案:

答案 0 :(得分:1)

这可以在ggplot2中完成,首先将数据重新整形为长格式并使用geom_point进行绘图。这是一个例子:

我从数据中省略了rnig,因为它产生了错误

Dataset1 <- data.frame(v1 = rnorm(12,-0.41,3.4),
                       v2 = rgamma(12,3,1.5),
                       v3 = rbeta(12,9,11),
                       v5 = rpois(12,11),
                       class = floor(runif(12,1,4)))

library(tidyverse)

Dataset1 %>%
  gather(key, value, 1:4) %>% #convert to long format
  ggplot()+
  geom_point(aes(x = key, y = value, color = as.factor(class)))

enter image description here

如果只需要相对值(从提供的图像看起来),您可以将值缩放到0-1范围:

Dataset1 %>%
  gather(key, value, 1:4) %>%
  group_by(key) %>% #in each key
  mutate(value = scales::rescale(value)) %>% #scale the values
  ggplot()+
  geom_point(aes(x = key, y = value, color = as.factor(class)))

enter image description here