【问题标题】:Ploting a matrix using ggplot2 in R在 R 中使用 ggplot2 绘制矩阵
【发布时间】:2016-06-30 22:15:35
【问题描述】:

我想使用ggplot2 绘制对应于矩阵列名的 5 个变量的分布

a <- matrix(runif(1:25),ncol=5,nrow=1)
colnames(a) <- c("a","b","c","d","e")
rownames(a) <- c("count")

我试过了:

ggplot(data=melt(a),aes(x=colnames(a),y=a[,1]))+ geom_point()

但是,这会产生一个结果,好像所有列都具有相同的 y 值

注意:我正在使用 reshape 包来实现 melt() 函数

【问题讨论】:

    标签: r matrix ggplot2


    【解决方案1】:

    所有列看起来都具有相同的 y 值,因为您在 y= 语句中只指定了 1 个数字。你说的是y=a[,1],如果你在命令窗口中输入a[,1],你会发现0.556(所有东西都出现在这个数字)。我想这就是你想要的:

    library(reshape2)
    library(ggplot2)
    
    a_melt<- melt(a)
    ggplot(data=a_melt,aes(x=unique(Var2),y=value))+ geom_point()
    

    请注意,我保存了一个名为 a_melt 的新数据集,以便更容易参考。此外,由于数据已融化,如果我们将 x 值定义为 a_meltVar2 列而不是 a 的列,则更清晰。

    【讨论】:

    • 我在 unique(Var2) 中遇到错误:找不到对象“Var2”。 Var2 和 value 是从哪里来的?
    • 代码对我有用。您是否使用您发布的原始数据运行它?
    猜你喜欢
    • 1970-01-01
    • 2016-10-20
    • 2018-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-22
    • 2017-09-16
    相关资源
    最近更新 更多