使用带有节点/点符号的gplot的网络图

时间:2015-05-27 17:11:02

标签: r sna

我正在尝试使用节点符号(点形状)来生成黑白网络图,以区分节点类型,而不是使用颜色。但是,我无法使用软件包sna中的gplot函数找到一种方法。这是一个简单的例子:

@Test
public void testChangeAddress() 
{
    User inUser = mock(User.class);
    DialogBox inDialogBox = mock(DialogBox.class);
    Validator inValidator = mock(Validator.class);


    //1st test case when loggedin() is true aswell as the validAddress() is true
    when(inUser.loggedIn()).thenReturn(true);     // STUB
    when(inDialogBox.getAddress()).thenReturn("Test address");  // STUB
    when(inUser.setAddress("Test address")).thenReturn(true);   // STUB
    changeAddress(inUser, inDialogBox, inValidator);          
    verify(inUser).setAddress("Test address");         //VERIFY


    //2nd test case when loggedin()is false
    when(inUser.loggedIn()).thenReturn(false);      // STUB
    changeAddress(inUser, inDialogBox, inValidator); 
    verify(inDialogBox).message("Not logged in");   //VERIFY


    //3rd test case when loggedin() is true but validAddress() is false
    when(inUser.loggedIn()).thenReturn(true);    // STUB                    
    when(inDialogBox.getAddress()).thenReturn("Test address");      // STUB
    when(inUser.setAddress("Test address")).thenReturn(false);      // STUB
    changeAddress(inUser, inDialogBox, inValidator);
    verify(inDalogBox).message("Invalid address");      //VERIFY
}   

至少在我的r和sna版本中,gplot只是忽略了pch。我发现文档here似乎表明,vertex.pch可以用于设置节点符号。但是,这不再出现在sna文档中,以下代码会导致错误:

library(network)
library(sna)
set seed(100)
net <- as.network(matrix(sample(c(0:1),100,replace=TRUE),nrow=10,ncol=10))
symbols <- rep(c(1:2),5)
gplot(net,pch=symbols) 

有没有办法在网络图中替换颜色的符号,理想情况下使用gplot(我试图生成现有颜色图的黑白版本,所以如果可能的话,我宁愿不从头开始)? / p>

1 个答案:

答案 0 :(得分:1)

gplot不直接支持pch,但它允许您使用vertex.sides参数更改顶点多边形中的边数。所以,如果你想用三角形和正方形绘制你的例子:

gplot(net,vertex.col='black',vertex.sides = symbols+2)