由testcase数据之分析
一、获取data来源
1、利用openpyxl从excel表格获取数据,相较于xlrd,openpyxl可以将表格里的样式也传递过来的优势
xlrd ----------------- https://blog.csdn.net/csdnnews/article/details/80878945
openpyxl --------------- https://www.cnblogs.com/zeke-python-road/p/8986318.html
from openpyxl import load_workbook
from matplotlib import pyplot as plt wb = load_workbook('qqqqqq.xlsx')
ws = wb.active cols = []
for col in ws.iter_cols():
col = col[:]
cols.append(col) Casename_list = []
for key in cols[]:
Casename_list.append(key.value)
# print(Casename_list) Test_result = []
for key in cols[]:
Test_result.append(key.value)
二、data图表分析
1、利用matplotlab
存在中文编码问题:
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号 plt.plot((,,),(,,))
plt.xlabel('横坐标')
plt.ylabel('纵坐标')
plt.show()
---------------------
作者:Yrish
来源:CSDN
原文:https://blog.csdn.net/sinat_29699167/article/details/80029898
版权声明:本文为博主原创文章,转载请附上博文链接!
2、echarts ----- https://www.cnblogs.com/a10086/p/9551966.html
A、后台拼凑数据
class Echarts_html(TemplateView):
template_name = "templeate/app01/echarts.html" def get_context_data(self, **kwargs):
context = super(Echarts_html, self).get_context_data(**kwargs)
aaa= {
'title': {
'text': 'ECharts 入门示例'
},
'tooltip': {},
'legend': {
'data': ['销量']
},
'xAxis': {
'data': []
},
'yAxis': {},
'series': [{
'name': '销量',
'type': 'bar',
'data': []
}]
}
articles = Article.objects.all()
for item in articles:
aaa['xAxis']['data'].append(item.title)
aaa['series'][]['data'].append(item.read_count)
context['aaa'] = aaa
return context
前台代码,数据处理完毕,前台直接使用。但是记得加{{xxx|safe}} 否则会被转义(xss跨站了解下)
<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 = {{ aaa | safe}};
myChart.setOption(option);
</script>
</body>
3、前台js处理数据
class Echarts_html(TemplateView):
template_name = "templeate/app01/echarts.html" def get_context_data(self, **kwargs):
context = super(Echarts_html, self).get_context_data(**kwargs)
context['articles'] = Article.objects.all()
return context
前台代码,js处理,注意的一点就是js中数组push(类似append)必须是字符串或者数字,直接"xxxx"转成字符串。
<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 = {
'title': {
'text': 'ECharts 入门示例'
},
'tooltip': {},
'legend': {
'data': ['阅读量']
},
'xAxis': {
'data': []
},
'yAxis': {},
'series': [{
'name': '阅读量',
'type': 'bar',
'data': []
}]
}
{% for item in articles %}
option['xAxis']['data'].push("{{ item.title }}")
option['series'][]['data'].push("{{ item.read_count }}")
{% endfor %}
console.log(option) // 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
</script> </body>
三、eg
1、前台
from django.views.generic.base import TemplateView
from .models import *
class Echarts_html(TemplateView):
template_name = "../templates/eg1.html"
def get_context_data(self, **kwargs):
context = super(Echarts_html, self).get_context_data(**kwargs)
aaa = {
'title': {
'text': 'ECharts 测试示例'
},
'tooltip': {},
'legend': {
'data': ['销量']
},
'xAxis': {
'data': []
},
'yAxis': {},
'series': [{
'name': '销量',
'type': 'bar',
'data': []
}]
}
articles = Article.objects.all()
for item in articles:
aaa['xAxis']['data'].append(item.name)
aaa['series'][]['data'].append(item.read_count)
context['aaa'] = aaa
return context def post(self,request):
print('post')
return HttpResponse('post')
2、后台
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="https://cdn.bootcss.com/echarts/4.2.0-rc.2/echarts.js"></script>
</head>
<style>
#myimg {
border: 1px solid red;
height: 18px;
width: 18px;
background-image: url('2.png');
background-position-y: 138px;
}
</style>
<body> <form action="" method="post">
<input type="text">
<input type="submit" value="带点"> </form> <!-- 为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 = {{ aaa | safe}};
myChart.setOption(option);
</script> </body>
</html>
由testcase数据之分析的更多相关文章
- 《Wireshark数据包分析实战》 - http背后,tcp/ip抓包分析
作为网络开发人员,使用fiddler无疑是最好的选择,方便易用功能强. 但是什么作为爱学习的同学,是不应该止步于http协议的,学习wireshark则可以满足这方面的需求.wireshark作为抓取 ...
- iOS开发——项目实战总结&数据持久化分析
数据持久化分析 plist文件(属性列表) preference(偏好设置) NSKeyedArchiver(归档) SQLite 3 CoreData 当存储大块数据时你会怎么做? 你有很多选择,比 ...
- WireShark数据包分析数据封装
WireShark数据包分析数据封装 数据封装(Data Encapsulation)是指将协议数据单元(PDU)封装在一组协议头和尾中的过程.在OSI七层参考模型中,每层主要负责与其它机器上的对等层 ...
- 可视化数据包分析工具-CapAnalysis
可视化数据包分析工具-CapAnalysis 我们知道,Xplico是一个从pcap文件中解析出IP流量数据的工具,本文介绍又一款实用工具-CapAnalysis(可视化数据包分析工具),将比Xpli ...
- snmp数据包分析
今天看了一下snmp数据包的报文格式,用wireshark抓了两个数据包来分析. 先说说snmp get-request的书报包格式吧,get-next-request,get-response,se ...
- ajax对一些没有接口的数据进行分析和添加方法
对于一些没有接口的数据进行分析和添加方法: <script src="ajax.js"><script>//插入ajax文件 <script> ...
- tcprstat源码分析之tcp数据包分析
tcprstat是percona用来监测mysql响应时间的.不过对于任何运行在TCP协议上的响应时间,都可以用.本文主要做源码分析,如何使用tcprstat请大家查看博文<tcprstat分析 ...
- 第二篇:智能电网(Smart Grid)中的数据工程与大数据案例分析
前言 上篇文章中讲到,在智能电网的控制与管理侧中,数据的分析和挖掘.可视化等工作属于核心环节.除此之外,二次侧中需要对数据进行采集,数据共享平台的搭建显然也涉及到数据的管理.那么在智能电网领域中,数据 ...
- firebug登陆之数据包分析
登陆之数据包分析 工具: python-urllib2 | firefox+firebug或者chrome,用浏览器打开登陆页面之后,按F12键会默认打开开发者工具或者启动firebug,点击n ...
随机推荐
- js之全局变量与window对象
所有在全局作用域中声明的变量.函数都会变成window对象的属性和方法. 即: var age = 55; 可以通过window.age访问 然而全局变量和与在window对象上定义的属性还是有一点区 ...
- jquery ready&&load用法
ready和load那一个先执行 DOM文档加载的步骤 (1) 解析HTML结构 (2) 加载外部脚本和样式表文件 (3) 解析并执行脚本代码 (4) 构造HTML DOM模型 //ready (5) ...
- Win10系列:VC++ Direct3D图形绘制1
通过前面的介绍,相信读者已经了解了如何新建一个用于开发Direct3D应用程序的项目模版,以及这个项目模版中用于绘制立体图形的主要函数.在本小节中,将通过一个具体的示例来介绍如何使用Visual St ...
- u-boot的内存分布
cpu会自动从NAND flash 中读取前4KB的数据放置在片内SRAM里(s3c2440是soc),同时把这段片内SRAM映射到nGCS0片选的空间(即0x00000000).cpu是从0x000 ...
- 2.18 C++类与static关键字
参考:http://www.weixueyuan.net/view/6349.html 总结: 类中的成员变量或成员函数一旦与static关键字相结合,则该成员变量或成员函数就是属于类的,而不是再是属 ...
- Java与C++简单对比
Java语言让编程者无法找到指针来直接访问内存,并且增添了自动的内存管理功能,从而有效的组织了C/C++语言中指针操作失误,如滥用指针所造成的系统崩溃,Java的指针在虚拟机内部使用,这保证了Java ...
- C语言获取系统时间的几种方式
C语言获取系统时间的几种方式 2009-07-22 11:18:50| 分类: 编程学习 |字号 订阅 C语言中如何获取时间?精度如何? 1 使用time_t time( time_t * ...
- 源码安装nginx 出现fatal error: pcre.h: 没有此文件或者目录
原因是用了pcre2 重新下载pcre再编译即可.
- ios中xib文件的用法
ZQRView文件: // // ZQRView.h // // // Created by zzqqrr on 17/8/20. // // #import <UIKit/UIKit.h> ...
- phpstom pojie
https://blog.csdn.net/gu_wen_jie/article/details/79136475