<html>
<head>
<meta charset="utf-8">
<title>中国地图</title>
<script src="https://unpkg.com/react@15/dist/react.min.js"></script>
<script src="https://unpkg.com/react-dom@15/dist/react-dom.min.js"></script>
<script src="https://a.alipayobjects.com/g/datavis/g2/2.3.13/g2.js"></script>
<script src="https://unpkg.com/g2-react@1.2.0/dist/index.js"></script>
<script src="https://cdn.bootcss.com/babel-core/5.8.38/browser.min.js"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
</head>
<body>
<div id="c1"></div>
</body>
<script type="text/babel">
let chinaGeoJSON;
const Chart = createG2(chart => {
const Stat = G2.Stat;
chart.axis(false);
chart.polygon().position(Stat.map.region('name', chinaGeoJSON))
.color('value', '#F4EC91-#AF303C')
.label('name', {label: {fill: '#000', shadowBlur: 5, shadowColor: '#fff'}})
.style({
stroke: '#333',
lineWidth: 1
});
chart.render();
});
const MyComponent = React.createClass({
getInitialState() {
return {
data: [],
forceFit: true,
width: 500,
height: 450,
plotCfg: {
margin: [50, 80]
}
};
},
componentDidMount: function() {
const self = this;
axios.get('http://antvis.github.io/static/data/china.json').then(function (response) {
chinaGeoJSON = response.data;
const userData = [];
const features = chinaGeoJSON.features;
for(let i=0; i<features.length; i++) {
const name = features[i].properties.name;
userData.push({
"name": name,
"value": Math.round(Math.random()*1000)
});
}
self.setState({
data: userData
});
}).catch(function (error) {
console.log(error);
});
},
render() {
if (this.state.data.length === 0) {
return (<div></div>);
} else {
return (
<div>
<Chart
data={this.state.data}
width={this.state.width}
height={this.state.height}
plotCfg={this.state.plotCfg}
forceFit={this.state.forceFit} />
</div>
);
}
},
});
ReactDOM.render(<MyComponent />, document.getElementById('c1'));
</script>
</html>
Output
You can jump to the latest bin by adding /latest
to your URL
Keyboard Shortcuts
Shortcut | Action |
---|---|
ctrl + [num] | Toggle nth panel |
ctrl + 0 | Close focused panel |
ctrl + enter | Re-render output. If console visible: run JS in console |
Ctrl + l | Clear the console |
ctrl + / | Toggle comment on selected lines |
ctrl + ] | Indents selected lines |
ctrl + [ | Unindents selected lines |
tab | Code complete & Emmet expand |
ctrl + shift + L | Beautify code in active panel |
ctrl + s | Save & lock current Bin from further changes |
ctrl + shift + s | Open the share options |
ctrl + y | Archive Bin |
Complete list of JS Bin shortcuts |
JS Bin URLs
URL | Action |
---|---|
/ | Show the full rendered output. This content will update in real time as it's updated from the /edit url. |
/edit | Edit the current bin |
/watch | Follow a Code Casting session |
/embed | Create an embeddable version of the bin |
/latest | Load the very latest bin (/latest goes in place of the revision) |
/[username]/last | View the last edited bin for this user |
/[username]/last/edit | Edit the last edited bin for this user |
/[username]/last/watch | Follow the Code Casting session for the latest bin for this user |
/quiet | Remove analytics and edit button from rendered output |
.js | Load only the JavaScript for a bin |
.css | Load only the CSS for a bin |
Except for username prefixed urls, the url may start with http://jsbin.com/abc and the url fragments can be added to the url to view it differently. |