【问题标题】:Plotting a matrix with different point styles绘制具有不同点样式的矩阵
【发布时间】:2014-10-07 22:53:32
【问题描述】:

我有一个 n x n 对称矩阵,其值等于 -1、0 或 1。我使用 image() 和 levelplot() 绘制了矩阵,为 -1 和 1 提供了不同的颜色(0 表示没有值,因此没有颜色或白色)。

但是,我无法更改这两个函数中的任何一个的点样式(使用 pch),也无法更改热图和其他选项。

我试图用不同的颜色和不同的点样式(圆形,比如说三角形)来表示 -1 和 1。 类似于此处显示的内容:http://www.ploscompbiol.org/article/fetchObject.action?uri=info:doi/10.1371/journal.pcbi.1002004.g007&representation=PNG_M

感谢您的帮助。

【问题讨论】:

  • 请包含一些示例代码,最好使用reproducible example 的数据。
  • 数据与rnso描述的一样,只是数据是对称矩阵的形式。然后我使用了 lattice 包中的 levelplot(),不同的颜色代表 -1、1,白色代表零。

标签: r matrix plot


【解决方案1】:

试试:

xx = matrix(sample(-1:1, 16, replace=T), nrow=4)
xx
     [,1] [,2] [,3] [,4]
[1,]    0    1    0    1
[2,]    1   -1    1    1
[3,]    1    1   -1    0
[4,]    0    1    1   -1

dd = data.frame(xx)
dd$id = rownames(dd)
ggplot(melt(dd))+geom_point(aes(x=variable, y=id, color=value, shape=value))

用 0 省略点:

mm = melt(dd)
mm$value[mm$value==0] = NA
ggplot(mm)+geom_point(aes(x=variable, y=id, color=factor(value), shape=factor(value)),size=5)

【讨论】:

  • 感谢您的回复。但是,您的示例不保留原始数据(矩阵)的顺序。我能够垂直翻转原始矩阵(使用apply(xx, 2, rev)),然后使用示例代码。
  • 我专注于“用不同的颜色和不同的点样式表示 -1 和 1”,这是您的主要问题。
猜你喜欢
  • 2014-06-10
  • 1970-01-01
  • 1970-01-01
  • 2014-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-17
  • 1970-01-01
相关资源
最近更新 更多