const DemoApp = angular.module('DemoApp', ['dx']);
DemoApp.controller('DemoController', ($scope) => {
$scope.chartOptions = {
dataSource,
commonPaneSettings: {
border: {
visible: true,
},
},
series: {
type: 'scatter',
valueField: 'mass',
argumentField: 'name',
point: {
size: 20,
},
},
customizePoint() {
let color;
let hoverStyle;
switch (this.data.type) {
case 'Star':
color = 'red';
hoverStyle = { border: { color: 'red' } };
break;
case 'Satellite':
color = 'gray';
hoverStyle = { border: { color: 'gray' } };
break;
default:
break;
}
return { color, hoverStyle };
},
export: {
enabled: true,
},
argumentAxis: {
grid: {
visible: true,
},
label: {
rotationAngle: 20,
overlappingBehavior: 'rotate',
},
},
valueAxis: {
type: 'logarithmic',
title: 'Mass Relative to the Earth',
},
title: 'Relative Masses of the Heaviest Solar System Objects',
legend: {
visible: false,
},
tooltip: {
enabled: true,
},
};
});
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>DevExtreme Demo</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>window.jQuery || document.write(decodeURIComponent('%3Cscript src="js/jquery.min.js"%3E%3C/script%3E'))</script>
<link rel="stylesheet" type="text/css" href="https://cdn3.devexpress.com/jslib/22.2.6/css/dx.light.css" />
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script>
<script>window.angular || document.write(decodeURIComponent('%3Cscript src="js/angular.min.js"%3E%3C/script%3E'))</script>
<script src="https://cdn3.devexpress.com/jslib/22.2.6/js/dx.all.js"></script>
<script src="data.js"></script>
<link rel="stylesheet" type="text/css" href="styles.css" />
<script src="index.js"></script>
</head>
<body class="dx-viewport">
<div class="demo-container" ng-app="DemoApp" ng-controller="DemoController">
<div id="chart" dx-chart="chartOptions"></div>
</div>
</body>
</html>
#chart {
height: 440px;
}
const dataSource = [{
name: 'Sun',
mass: 332837,
type: 'Star',
}, {
name: 'Jupiter',
mass: 317.83,
type: 'Planet',
}, {
name: 'Saturn',
mass: 95.159,
type: 'Planet',
}, {
name: 'Uranus',
mass: 14.536,
type: 'Planet',
}, {
name: 'Neptune',
mass: 17.147,
type: 'Planet',
}, {
name: 'Earth',
mass: 1,
type: 'Planet',
}, {
name: 'Venus',
mass: 0.815,
type: 'Planet',
}, {
name: 'Mars',
mass: 0.107,
type: 'Planet',
}, {
name: 'Mercury',
mass: 0.0553,
type: 'Planet',
}, {
name: 'Moon',
mass: 0.0123,
type: 'Satellite',
}, {
name: "Europa (Jupiter's Moon)",
mass: 0.00803,
type: 'Satellite',
}];