写一个前端大数据可视化的网页,主要包含设备在线数、在线比例、产能,良率状况、宕机状况、远程连接等
时间: 2023-07-10 20:04:44 浏览: 52
这是一份简单的前端大数据可视化网页,包含了设备在线数、在线比例、产能,良率状况、宕机状况、远程连接等。
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>大数据可视化</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/g2plot@1.0.8/dist/g2plot.min.css" />
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
<div class="chart">
<h2>设备在线统计</h2>
<div class="chart-container" ref="chart1"></div>
</div>
<div class="chart">
<h2>在线比例</h2>
<div class="chart-container" ref="chart2"></div>
</div>
<div class="chart">
<h2>产能</h2>
<div class="chart-container" ref="chart3"></div>
</div>
<div class="chart">
<h2>良率状况</h2>
<div class="chart-container" ref="chart4"></div>
</div>
<div class="chart">
<h2>宕机状况</h2>
<div class="chart-container" ref="chart5"></div>
</div>
<div class="chart">
<h2>远程连接</h2>
<div class="chart-container" ref="chart6"></div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/g2plot@1.0.8/dist/g2plot.min.js"></script>
<script>
var app = new Vue({
el: "#app",
mounted() {
this.renderChart1();
this.renderChart2();
this.renderChart3();
this.renderChart4();
this.renderChart5();
this.renderChart6();
},
methods: {
// 设备在线统计
renderChart1() {
const chartData = [
{ name: "设备A", value: 120 },
{ name: "设备B", value: 300 },
{ name: "设备C", value: 200 },
{ name: "设备D", value: 400 },
];
const chart = new G2Plot.Pie(this.$refs.chart1, {
forceFit: true,
title: {
visible: false,
},
description: {
visible: false,
},
radius: 0.8,
data: chartData,
angleField: "value",
colorField: "name",
label: {
visible: true,
style: {
fontSize: 10,
},
},
legend: {
visible: false,
},
tooltip: {
visible: true,
formatter: (item) => {
return { name: item.name, value: item.value + " 台" };
},
},
});
chart.render();
},
// 在线比例
renderChart2() {
const chartData = [
{ name: "在线", value: 80 },
{ name: "离线", value: 20 },
];
const chart = new G2Plot.Pie(this.$refs.chart2, {
forceFit: true,
title: {
visible: false,
},
description: {
visible: false,
},
radius: 0.8,
data: chartData,
angleField: "value",
colorField: "name",
label: {
visible: true,
style: {
fontSize: 10,
},
},
legend: {
visible: false,
},
tooltip: {
visible: true,
formatter: (item) => {
return { name: item.name, value: item.value + "%" };
},
},
});
chart.render();
},
// 产能
renderChart3() {
const chartData = [
{ date: "2021-06-01", value: 200 },
{ date: "2021-06-02", value: 300 },
{ date: "2021-06-03", value: 250 },
{ date: "2021-06-04", value: 350 },
{ date: "2021-06-05", value: 400 },
{ date: "2021-06-06", value: 450 },
{ date: "2021-06-07", value: 500 },
];
const chart = new G2Plot.Line(this.$refs.chart3, {
forceFit: true,
title: {
visible: false,
},
description: {
visible: false,
},
data: chartData,
xField: "date",
yField: "value",
yAxis: {
label: {
formatter: (val) => {
return val + " 件";
},
},
},
tooltip: {
visible: true,
formatter: (item) => {
return { name: "产能", value: item.value + " 件" };
},
},
});
chart.render();
},
// 良率状况
renderChart4() {
const chartData = [
{ date: "2021-06-01", value: 90 },
{ date: "2021-06-02", value: 80 },
{ date: "2021-06-03", value: 85 },
{ date: "2021-06-04", value: 82 },
{ date: "2021-06-05", value: 88 },
{ date: "2021-06-06", value: 92 },
{ date: "2021-06-07", value: 95 },
];
const chart = new G2Plot.Line(this.$refs.chart4, {
forceFit: true,
title: {
visible: false,
},
description: {
visible: false,
},
data: chartData,
xField: "date",
yField: "value",
yAxis: {
label: {
formatter: (val) => {
return val + "%";
},
},
},
tooltip: {
visible: true,
formatter: (item) => {
return { name: "良率", value: item.value + "%" };
},
},
});
chart.render();
},
// 宕机状况
renderChart5() {
const chartData = [
{ name: "设备A", value: 0.01 },
{ name: "设备B", value: 0.03 },
{ name: "设备C", value: 0.02 },
{ name: "设备D", value: 0.05 },
];
const chart = new G2Plot.Ring(this.$refs.chart5, {
forceFit: true,
title: {
visible: false,
},
description: {
visible: false,
},
data: chartData,
innerRadius: 0.6,
radius: 0.8,
colorField: "name",
angleField: "value",
label: {
visible: true,
type: "outer",
formatter: (item) => {
return item.name + " " + (item.value * 100).toFixed(0) + "%";
},
},
legend: {
visible: false,
},
tooltip: {
visible: true,
formatter: (item) => {
return { name: item.name, value: (item.value * 100).toFixed(0) + "%" };
},
},
});
chart.render();
},
// 远程连接
renderChart6() {
const chartData = [
{ name: "设备A", value: 0.7 },
{ name: "设备B", value: 0.6 },
{ name: "设备C", value: 0.5 },
{ name: "设备D", value: 0.4 },
];
const chart = new G2Plot.Bar(this.$refs.chart6, {
forceFit: true,
title: {
visible: false,
},
description: {
visible: false,
},
data: chartData,
xField: "value",
yField: "name",
yAxis: {
label: {
autoRotate: false,
},
},
color: "#1890ff",
label: {
visible: true,
position: "right",
style: {
fontSize: 10,
},
formatter: (item) => {
return (item.value * 100).toFixed(0) + "%";
},
},
legend: {
visible: false,
},
tooltip: {
visible: true,
formatter: (item) => {
return { name: item.name, value: (item.value * 100).toFixed(0) + "%" };
},
},
});
chart.render();
},
},
});
</script>
</body>
</html>
```
这个网页使用了 Vue.js 和 G2Plot 库来实现数据可视化。
其中,设备在线统计、在线比例和宕机状况使用了饼图(Pie),产能和良率状况使用了折线图(Line),远程连接使用了条形图(Bar)。
在每个图表中,都使用了 tooltip 来显示鼠标悬停时的信息,可以通过 formatter 属性来自定义显示的内容。同时,也可以自定义图例(legend)、标签(label)等元素的样式和显示方式。