Fix https://github.com/apache/incubator-skywalking/issues/1502
diff --git a/src/routes/Topology/Topology.js b/src/routes/Topology/Topology.js
index 21127c1..1ade006 100644
--- a/src/routes/Topology/Topology.js
+++ b/src/routes/Topology/Topology.js
@@ -38,24 +38,28 @@
   style: { marginTop: 8 },
 };
 
-const layouts = {
-  'cose-bilkent': {
-    name: 'cose-bilkent',
-    idealEdgeLength: 200,
-    edgeElasticity: 0.1,
-  },
-  dagre: {
+const layouts = [
+  {
     name: 'dagre',
+    icon: 'img/icon/dagre.png',
     rankDir: 'LR',
     minLen: 4,
     animate: true,
   },
-  concentric: {
+  {
     name: 'concentric',
+    icon: 'img/icon/concentric.png',
     minNodeSpacing: 10,
     animate: true,
   },
-};
+  {
+    name: 'cose-bilkent',
+    icon: 'img/icon/cose.png',
+    idealEdgeLength: 200,
+    edgeElasticity: 0.1,
+    randomize: false,
+  },
+];
 
 const layoutButtonStyle = { height: '90%', verticalAlign: 'middle', paddingBottom: 2 };
 
@@ -77,7 +81,7 @@
   handleLayoutChange = ({ target: { value } }) => {
     this.props.dispatch({
       type: 'topology/saveData',
-      payload: { layout: layouts[value] },
+      payload: { layout: value },
     });
   }
   handleSelectedApplication = (appInfo) => {
@@ -146,7 +150,7 @@
   }
   render() {
     const { data, variables: { appFilters = [] } } = this.props.topology;
-    const { layout = layouts['cose-bilkent'] } = data;
+    const { layout = 0 } = data;
     const topologData = this.filter();
     return (
       <Panel globalVariables={this.props.globalVariables} onChange={this.handleChange}>
@@ -156,10 +160,11 @@
               title="Topology Map"
               avatar={<Avatar icon="fork" style={{ color: '#1890ff', backgroundColor: '#ffffff' }} />}
               action={(
-                <Radio.Group value={layout.name} onChange={this.handleLayoutChange} size="normal">
-                  <Radio.Button value="cose-bilkent"><img src="img/icon/cose.png" alt="cose" style={layoutButtonStyle} /></Radio.Button>
-                  <Radio.Button value="dagre"><img src="img/icon/dagre.png" alt="dagre" style={layoutButtonStyle} /></Radio.Button>
-                  <Radio.Button value="concentric"><img src="img/icon/concentric.png" alt="concentric" style={layoutButtonStyle} /></Radio.Button>
+                <Radio.Group value={layout} onChange={this.handleLayoutChange} size="normal">
+                  {layouts.map((_, i) => (
+                    <Radio.Button value={i} key={_.name}>
+                      <img src={_.icon} alt={_.name} style={layoutButtonStyle} />
+                    </Radio.Button>))}
                 </Radio.Group>
               )}
             >
@@ -168,7 +173,7 @@
                   height={this.props.graphHeight}
                   elements={topologData}
                   onSelectedApplication={this.handleSelectedApplication}
-                  layout={layout}
+                  layout={layouts[layout]}
                 />
               ) : null}
             </ChartCard>