2017-06-20 80 views
0

The plot between e_values and r_values, the values of probabilities of fp0 indicated by different colors of my color scale.我有一个有132行3列的矩阵。这些矩阵的名称分别是e_values,r_values和fp0.Now如何绘制矩阵的彩色图?该图必须在y轴上具有e_values,在x轴上具有r_values,并且将fp0的各种值作为颜色。在0.1的间隔中,e_values从0变化到0.5,并且r_values从0变化到6.5,在间隔0.5到4,然后是0.2到4到6.5,我的fp0值基本上是我的概率,所以他们从0到1变化。我想不出如何上传我的csv文件,所以我给了我的描述矩阵和我也打印我的矩阵。我对R也很新,对像ggplot2和其他类似软件包的工作方式很不熟悉,所以如果我得到详细的解释,它将非常有帮助。如何在r中制作一个矩阵的彩色图表

 e_values r_values fp0 
    1 0   0   1.0000 
    2 0.1  0   1.0000 
    3 0.2  0   1.0000 
    4 0.3  0   1.0000 
    5 0.4  0   1.0000 
    6 0.5  0   1.0000 
    7 0   0.5  1.0000 
    8 0.1  0.5  1.0000 
    9 0.2  0.5  1.0000 
    10 0.3  0.5  1.0000 
    11 0.4  0.5  1.0000 
    12 0.5  0.5  1.0000 
    13 0   1   1.0000 

我的矩阵的推移以上述方式,直到R = 4,0.2后续的r值增加与FP0值后其也开始显示的变化。 ,并遵循这种模式,直到没有。的行变成132.

回答

1

你只需要在ggplot中使用fp0作为颜色。

下面的代码将创建您描述的情节。这里,较暗的颜色表示较高的概率。如果你有一个离散的概率,你也可以为每个级别使用不同的颜色(第二个图)。

require(ggplot2) 

e_values = seq(0, 0.5, by = 0.1) 
r_values = c(seq(0, 4, by = 0.5), seq(4.2, 6.5, by = 0.2)) 

df <- data.frame(e_values = sample(e_values, 132, replace = T), 
       r_values = sample(r_values, 132, replace = T), 
       fp0 = runif(132)) 

g <- ggplot(df, aes(x = r_values, y = e_values, color = fp0)) 
g <- g + geom_point() 
g 

df <- data.frame(e_values = sample(e_values, 132, replace = T), 
       r_values = sample(r_values, 132, replace = T), 
       fp0 = sample(seq(0, 1, by = 0.2), 132, replace = T)) 

g <- ggplot(df, aes(x = r_values, y = e_values, color = as.factor(fp0))) 
g <- g + geom_point() 
g 

Continuos probabilities Discrete probabilities

编辑:您所上传的图片有r_values为y轴和e_values为x轴。此外,点的形状是不同的。这里是产生所希望的描绘代码:

g <- ggplot(df, aes(x = e_values, y = r_values, color = fp0)) 
g <- g + geom_point(shape = 15, aes(fill = fp0)) 
g 

enter image description here

+0

谢谢你,尼科,我试着照你说的阴谋,但我似乎并没有得到我desired.The情节没有按什么与我的矩阵值不匹配。我的矩阵名称是M1,我编辑了我的帖子,因为我认为我无法有效地传达我的查询。请考虑看看我的修改后的帖子,然后建议我做些什么。再次感谢。 – Aritra

+0

不知道如何自动挑选类型为data.frame的对象的比例。默认连续。 错误:美学必须是长度1或与数据(132)相同:x,y,颜色 这就是我所得到的。我错过了什么。 – Aritra

+0

有一个显示所需输出的图(可能是一个模型或示例)会非常有帮助。 此外,点图可能不是可视化数据的最佳方式。然而,只有你可以决定哪种方法,因为我们不知道变量的含义 – Niko