有沒有辦法將自定義映射器添加到新的cytoscape.js?如何在cytoscape.js中創建自定義樣式映射?
我知道有數據(nodeKey),但是它使用nodeKey的de novo值。我可以設置我自己的地圖嗎?
謝謝!
有沒有辦法將自定義映射器添加到新的cytoscape.js?如何在cytoscape.js中創建自定義樣式映射?
我知道有數據(nodeKey),但是它使用nodeKey的de novo值。我可以設置我自己的地圖嗎?
謝謝!
這是我的自定義映射器:
/* Converts element attributes to their appropriate mapped values
* Any non-matching attributes will be matched to the "other" mapping
* if exists
* data: data
* elementType: nodes or edges
* attr: some key under data.nodes[i].data
* mapping: obj mapping oldVal: newVal for attr
* (toType): new values will be put into this attr, if attr
* shouldn't be touched
*/
function mapAttr(elementType, attr, mapping, toType){
for(var i=0; i < data[elementType].length; i++){
element = data[elementType][i]['data'][attr];
toType = toType ? toType : attr;
if(mapping[element]){
data[elementType][i]['data'][toType] = mapping[element];
}else if(mapping['other']){
data[elementType][i]['data'][toType] = mapping['other'];
}
}
}
實施例:
var nodeShapeMapper = {
Rearrangement: "hexagon",
Gene: "octagon",
Molecule: "triangle",
other: "ellipse"
};
mapAttr('nodes', 'ntype', nodeShapeMapper, 'shape');
這根據nodeShapeMapper [n型]
自定義映射器一般來說太貴,所以它們在Cytoscape.js中不受支持。良好的表現是我們對圖書館最重要的要求之一。
如果您要描述您正在尋找的那種映射,那麼今天就可以使用API,或者我們可以開展一些滿足您需求的工作。謝謝!
您好@maxkfranz爲 「形狀」 的節點屬性值產生的,我'尋找一個簡單的方法來繪製沿着'var = {a:「六邊形」,b:「三角形」,c:「橢圓」}'線條的值,這些邊緣包含'type =''有可能嗎?離散地圖以這種方式,還是我必須分別處理這些情況?謝謝! –
@JD。您不需要爲離散映射使用映射器。 'data()'語法實際上只是Cytoscape Web的一個結果,但最好使用CSS樣式(即在init中指定的樣式表中)。您可以將元素添加到元素以輕鬆設置元素的樣式,或者可以使用基於數據的更復雜的選擇器。請參閱http://cytoscape.github.io/cytoscape.js/#core/initialisation和http://cytoscape.github.io/cytoscape.js/#selectors – maxkfranz