假设我每次观察有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)))
我想像这样想象我的结果:
是否有可能在ggplot中进行这样的可视化?我不知道该怎么做。假设我们已经对每次观察进行了标准化。
答案 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)))
如果只需要相对值(从提供的图像看起来),您可以将值缩放到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)))