我正在尝试使用节点符号(点形状)来生成黑白网络图,以区分节点类型,而不是使用颜色。但是,我无法使用软件包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>
答案 0 :(得分:1)
gplot不直接支持pch
,但它允许您使用vertex.sides
参数更改顶点多边形中的边数。所以,如果你想用三角形和正方形绘制你的例子:
gplot(net,vertex.col='black',vertex.sides = symbols+2)