前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python测试开发django-149.ECharts 生成柱状图

python测试开发django-149.ECharts 生成柱状图

作者头像
上海-悠悠
发布2021-10-20 11:35:44
1.1K0
发布2021-10-20 11:35:44
举报

前言

ECharts 是一个使用 JavaScript 实现的开源可视化库,涵盖各行业图表,满足各种需求。

ECharts下载与使用

可以在直接下载 echarts.min.js 并用 <script>标签引入。下载地址https://cdn.staticfile.org/echarts/4.7.0/echarts.min.js 开发环境下可以使用源代码版本 echarts.js 并用 <script> 标签引入,源码版本包含了常见的错误提示和警告。下载地址https://cdn.staticfile.org/echarts/4.7.0/echarts.js

使用在线 CDN 方法: Staticfile CDN(国内) : https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js cdnjs : https://cdnjs.cloudflare.com/ajax/libs/echarts/4.3.0/echarts.min.js

生成柱状图

统计测试报告情况,生成柱状图,先看只有一组数据的情况

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>生成柱状图</title>
    <!-- 引入 echarts.js -->
    <script src="https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js"></script>
</head>
<body>
    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="main" style="width: 600px;height:400px;"></div>
    <script type="text/javascript">
        // 基于准备好的dom,初始化echarts实例
        var myChart = echarts.init(document.getElementById('main'));

        // 指定图表的配置项和数据
        var option = {
            legend: {},
            tooltip: {},
            dataset: {
                // 提供一份数据。
                source: [
                    ['report', 'pass', 'failed', 'error'],
                    ['10/10', 20, 5, 1]
                ]
            },
            // 声明一个 X 轴,类目轴(category)。默认情况下,类目轴对应到 dataset 第一列。
            xAxis: {type: 'category'},
            // 声明一个 Y 轴,数值轴。
            yAxis: {},
            // 声明多个 bar 系列,默认情况下,每个系列会自动对应到 dataset 的每一列。
            series: [
                {type: 'bar'},
                {type: 'bar'},
                {type: 'bar'}
            ]
        };

        // 使用刚指定的配置项和数据显示图表。
        myChart.setOption(option);
    </script>
</body>
</html>

生成效果

当测试报告数据有多组的情况,统计最近 5 天的报告情况,dataset 图标数据

代码语言:javascript
复制
     dataset: {
                // 提供一份数据。
                source: [
                    ['report', 'pass', 'failed', 'error'],
                    ['10/6', 20, 5, 1],
                    ['10/7', 23, 2, 1],
                    ['10/8', 25, 1, 0],
                    ['10/9', 18, 5, 3],
                    ['10/10', 26, 0, 0]
                ]
            }

完整的html

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>生成柱状图</title>
    <!-- 引入 echarts.js -->
    <script src="https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js"></script>
</head>
<body>
    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="main" style="width: 600px;height:400px;"></div>
    <script type="text/javascript">
        // 基于准备好的dom,初始化echarts实例
        var myChart = echarts.init(document.getElementById('main'));

        // 指定图表的配置项和数据
        var option = {
            legend: {},
            tooltip: {},
            dataset: {
                // 提供一份数据。
                source: [
                    ['report', 'pass', 'failed', 'error'],
                    ['10/6', 20, 5, 1],
                    ['10/7', 23, 2, 1],
                    ['10/8', 25, 1, 0],
                    ['10/9', 18, 5, 3],
                    ['10/10', 26, 0, 0]
                ]
            },
            // 声明一个 X 轴,类目轴(category)。默认情况下,类目轴对应到 dataset 第一列。
            xAxis: {type: 'category'},
            // 声明一个 Y 轴,数值轴。
            yAxis: {},
            // 声明多个 bar 系列,默认情况下,每个系列会自动对应到 dataset 的每一列。
            series: [
                {type: 'bar'},
                {type: 'bar'},
                {type: 'bar'}
            ]
        };

        // 使用刚指定的配置项和数据显示图表。
        myChart.setOption(option);
    </script>
</body>
</html>

生成效果

图标数据 dataset 也可以是键值对的形式

代码语言:javascript
复制
      dataset: {
                // 提供一份数据。
                source: [
                    {'report': '10/6', 'pass':20, 'failed':5, 'error':1},
                    {'report': '10/7', 'pass':23, 'failed':2, 'error':1},
                    {'report': '10/8', 'pass':25, 'failed':1, 'error':0},
                    {'report': '10/9', 'pass':18, 'failed':5, 'error':3},
                    {'report': '10/10', 'pass':26, 'failed':0, 'error':0},
                ]
            }

series.seriesLayoutBy 属性

我们可以使用 series.seriesLayoutBy 属性来配置 dataset 是列(column)还是行(row)映射为图形系列(series),默认是按照列(column)来映射。

代码语言:javascript
复制
// 指定图表的配置项和数据
        var option = {
            legend: {},
            tooltip: {},
            dataset: {
                // 提供一份数据。
                source: [
                    ['report', 'pass', 'failed', 'error'],
                    ['10/6', 20, 5, 1],
                    ['10/7', 23, 2, 1],
                    ['10/8', 25, 1, 0],
                    ['10/9', 18, 5, 3],
                    ['10/10', 26, 0, 0]
                ]
            },
            // 声明一个 X 轴,类目轴(category)。默认情况下,类目轴对应到 dataset 第一列。
            xAxis: {type: 'category'},
            // 声明一个 Y 轴,数值轴。
            yAxis: {},
            // 声明多个 bar 系列,默认情况下,每个系列会自动对应到 dataset 的每一列。
            series: [
                {type: 'bar', seriesLayoutBy: 'row'},
                {type: 'bar', seriesLayoutBy: 'row'},
                {type: 'bar', seriesLayoutBy: 'row'}
            ]
        };

显示效果

如果图表数据 dataset 是键值对的形式,是不能按行显示的。

自定义 yAxis

可以自定义Y轴显示内容

代码语言:javascript
复制
// 声明一个 Y 轴,数值轴。
            yAxis: [
                {
                    type: 'value',
                    name: '个数',
                    axisLabel: {
                        formatter: ' {value}'
                    }
                }
            ]

显示效果

设置最小值最大值和间距

代码语言:javascript
复制
// 声明一个 Y 轴,数值轴。
            yAxis: [
                {
                    type: 'value',
                    name: '个数',
                    min: 0,
                    max: 100,
                    interval: 10,
                    axisLabel: {
                        formatter: ' {value}'
                    }
                }
            ]

写死最大值会有个弊端,当数量大于100的时候,就超出了图表范围了

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始学自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • ECharts下载与使用
  • 生成柱状图
  • series.seriesLayoutBy 属性
  • 自定义 yAxis
相关产品与服务
内容分发网络 CDN
内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档