plotly中文文档_利用 python+plotly 制作Contour Plots模拟双波源干涉现象

本人在学习使用 plotly 的contour plots 制作的时候,发现利用这个表格制作波的干涉模拟方面有很不错的效果,因为之前被各种波动方程和振动方程教育了很久,所以就用波函数来开动,下面分享代码,供大家参考。(我用 java 写的代码模拟的波函数的测试数据)

下面是 plotly 的全部代码,里面包含了两种生成 contour plots 图表的方式,一个生成的是单个图表,但是带着等高线,所以被我放弃了。另外一个生成是图表矩阵,我选的row=1,cols=1的模式。

 1#!/usr/bin/python
 2# coding=utf-8
 3
 4import plotly.plotly
 5from plotly.graph_objs import *
 6import plotly.graph_objs as go
 7import plotly.tools as tool
 8
 9z = []
10with open("/Users/Vicky/Documents/workspace/fission/long/intervene.log") as apidata:
11    for i in apidata:
12        data = i.split("n")[0].split(",")
13        z.append(data)
14'''
15#这是单独一个表格的情况,但没找到去掉等高线的方法
16data = Data([
17    Contour(
18        z=z,
19        contours = dict(
20            coloring="heatmap"
21        )
22    )
23])
24plotly.offline.plot(data,filename="3333.html")
25'''
26data = {
27    'z': z,
28    'connectgaps': True,
29    'type': 'heatmap',
30    'zsmooth': 'best',
31    'showscale': True
32}
33fig = tool.make_subplots(rows=1, cols=1)
34fig.append_trace(data, 1, 1)
35plotly.offline.plot(fig,filename= "3333.html")

下面是 java 生成数据的代码:

 1package practise;
 2
 3import java.awt.Point;
 4import java.util.ArrayList;
 5import java.util.List;
 6import source.SourceCode;
 7
 8public class Intervene extends SourceCode {
 9    public List<List<Double>> data = new ArrayList<>();
10
11    public static void main(String[] args) {
12        Intervene intervene = new Intervene();
13        intervene.testDemo001();
14    }
15
16    public void testDemo001() {
17        Point point1 = new Point(50, 50);
18        Point point2 = new Point(150, 50);
19        int lamda = 6;
20        for (int i = 0; i < 100; i++) {// y 轴
21            List<Double> distance = new ArrayList<>();
22            for (int j = 0; j < 200; j++) {// x 轴
23                Point point = new Point(j, i);
24                double x = point.distance(point1) % lamda / lamda;
25                double y = point.distance(point2) % lamda / lamda;
26                double xx = Math.sin(x * 2 * Math.PI);
27                double yy = Math.sin(y * 2 * Math.PI);
28                distance.add(xx + yy);
29            }
30            data.add(distance);
31        }
32        StringBuffer content = new StringBuffer();
33        int size = data.size();
34        for (int i = 0; i < size; i++) {
35            String text = data.get(i).toString();
36            text = text.substring(1, text.length() - 1);
37            if (i == 0)
38                content.append(text);
39            content.append(LINE + text);
40        }
41        logLong("intervene.log", content.toString());
42    }
43}

下面是生成图表:

4ef5874a3b7e6777deb708d38c40b52c.png

技术类文章精选

  • java一行代码打印心形
  • Linux性能监控软件netdata中文汉化版
  • 接口测试代码覆盖率(jacoco)方案分享
  • 性能测试框架
  • 如何在Linux命令行界面愉快进行性能测试
  • 图解HTTP脑图
  • 如何测试概率型业务接口
  • httpclient处理多用户同时在线
  • 将swagger文档自动变成测试代码
  • 五行代码构建静态博客
  • httpclient如何处理302重定向
  • 基于java的直线型接口测试框架初探
  • Tcloud 云测平台--集大成者
  • 如何测试概率型业务接口
  • python plotly处理接口性能测试数据方法封装
  • 单点登录性能测试方案

非技术文章精选

  • 为什么选择软件测试作为职业道路?
  • 成为杰出Java开发人员的10个步骤
  • 写给所有人的编程思维
  • 自动化测试的障碍
  • 自动化测试的问题所在
  • 测试之《代码不朽》脑图
  • 成为优秀自动化测试工程师的7个步骤
  • 优秀软件开发人员的态度
  • 如何正确执行功能API测试
  • 未来10年软件测试的新趋势-上
  • 未来10年软件测试的新趋势-上
  • 自动化测试解决了什么问题
  • 17种软件测试人员常用的高效技能-上
  • 17种软件测试人员常用的高效技能-下
  • 手动测试存在的重要原因
  • 编写测试用例的17个技巧

大咖风采

  • Tcloud 云测平台--集大成者
  • Android App 测试工具及知识大集合
  • 4399AT UI自动化CI与CD
  • Android App常规测试内容
  • JVM的对象和堆

点击查看公众号地图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值