代码

import time
import math
def main():
    chart = {  # 用于初始化 图表的对象
                'title': {'text': "line数值触发 plotLines 值"},   # 图表标题
                'yAxis': { # Y轴 相关 设置
                    'plotLines': [{   #  垂直于Y轴的 水平线, 用作触发线, 是一个结构数组, 可以设置多条触发线。
                        'value': 0,   #  触发线的值,设置多少 这条线就在相应的数值位置显示。
                        'color': 'red',  # 设置触发线的颜色
                        'width': 2,      #  宽度
                        'label': {       #  显示的标签
                            'text': '触发值',    #标签文本
                            'align': 'center'   #标签位置  居中
                        },
                    }],
                },
                'xAxis': {'type': "datetime"},  # X轴相关设置,  这里设置类型是 时间轴
                'series': [{'name': "sin", 'type': "spline", 'data': []},
                         {'name': "cos", 'type': "spline", 'data': []}
                ]  # 这个是比较重要的数据系列,可以设置多个数据系列,根据数组索引控制
    };
    pi = 3.1415926535897;             #  圆周率
    itime = 0;                         #  用于记录时间戳的变量
    angle = 0;                        #  角度
    y = 0;                            #  坐标y值  ,  用于接收 正弦值、余弦值
    objChart = Chart(chart);          #  调用API 接口 用chart 对象初始化 图表
    objChart.reset();                     #  初始清空图表
    chart['yAxis']['plotLines'][0]['value'] = 1;   #  设置触发线的值为1
    while(true):                         #  循环
        itime = time.time();     #   获取当前时刻的时间戳
        y = math.sin(angle * 2 * pi / 360);   # 每 500ms 角度 angle 增加 5 度,计算正弦值。
        objChart.add(0, [itime, y]);           #  把计算出来的y 值写入图表 相应索引的数据系列 add 函数第一个参数 为 指定的索引
        y = math.cos(angle * 2 * pi / 360);   #  计算余弦值
        objChart.add(1, [itime, y]);
        objChart.update(chart);               # 增加新数据后,更新图表。
        angle += 5;                           # 增加5度
        Sleep(5000);                          # 暂停5秒  ,一面画图太频繁,数据增长过快。

返回

BotVS开发基础—2.5 绘制图表的更多相关文章

  1. BotVS开发基础—2.11 API绘制图表

    代码 import time chart = { '__isStock': True, # 标记是否为一般图表,有兴趣的可以改成 false 运行看看. 'tooltip': {'xDateForma ...

  2. BotVS开发基础—Python API

    代码 import json def main(): # python API列表 https://www.botvs.com/bbs-topic/443 #状态信息 LogStatus(" ...

  3. BotVS开发基础—2.7 指标MACD

    代码 def main(): while true: records = _C(exchange.GetRecords); # 获取K线数据 ,默认为策略界面设置的K线周期, _C 是一个容错的内置函 ...

  4. BotVS开发基础—2.7 指标MA

    代码 #计算一小时 MA5均线 # 时间 2017-06-29 00:00:00 -2017-06-30 00:00:00 1小时 实盘级Tick # 平台 OCKCoin BTC def main( ...

  5. BotVS开发基础—2.5 策略交互

    一.代码部分 isOpen = False; # 是否 开仓 price = 0; # 全局变量 价格 amount = 0; # 全局变量 下单量 def exec_command(command) ...

  6. BotVS开发基础—2.5 状态信息显示表格

    代码 import json def main(): #part 1 bol = True num = 10; # str = "ABC"; # 字符串 list = [1, 2, ...

  7. BotVS开发基础—2.4 获取订单、取消订单、获取未完成订单

    代码 RetryDelay = 1500; def CancelPendingOrders(exch, orderType): # 取消所有未完成的挂单, 参数1 交易所 参数2 类型 global ...

  8. BotVS开发基础—2.3 下市价单 交易

    代码 def main(): ticker = exchange.GetTicker(); Log("初始账户信息:", exchange.GetAccount()); # 用于对 ...

  9. BotVS开发基础—2.2 下限价单 交易

    代码 import json def main(): Log("ORDER_STATE_PENDING:", ORDER_STATE_PENDING, ", ORDER_ ...

随机推荐

  1. .NET Core 事件总线,分布式事务解决方案:CAP

    背景 相信前面几篇关于微服务的文章也介绍了那么多了,在构建微服务的过程中确实需要这么一个东西,即便不是在构建微服务,那么在构建分布式应用的过程中也会遇到分布式事务的问题,那么 CAP 就是在这样的背景 ...

  2. 51nod_1605:棋盘问题

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1605 题目中最有用的点其实还是x必为奇数 #include& ...

  3. Spring定时器实现(二)

    Spring结合quarzt可以实现更复杂的定时器,现做简单介绍相关配置: <?xml version="1.0" encoding="UTF-8"?&g ...

  4. jquery html5 file 上传图片显示图片

    jquery js 的代码:不同浏览器下的路径 //建立一個可存取到該file的url function getObjectURL(file) {     var url = null ;     i ...

  5. Java设计模式之模板方法设计模式(银行计息案例)

    不知道为什么,这几天对Java中的设计模式非常感兴趣,恰巧呢这几天公司的开发任务还不算太多,趁着有时间昨天又把模板方法模式深入学习了一下,做了一个客户在不同银行计息的小案例,感触颇深,今天给各位分享一 ...

  6. PHP通过phpmailer批量发送邮件功能

    前端页面代码: 注意:目前发送人使用的qq邮箱支持的不是特别友好.建议使用网易 新浪 163等其他邮箱. 需要用到phpmailer包 下载地址:https://sourceforge.net/pro ...

  7. 三.GC相关之三分钟认识GC算法

    GC算法慢慢演化,进化到了现在的分代GC.其进化过程 标记-清除算法 –> 标记-复制算法 –> 标记-整理算法 –> 分代算法. 在介绍算法之前,我们知道Java是动态加载.其特点 ...

  8. Thread(线程)四

    今天继续讲讲线程的异常处理.线程取消.多线程的临时变量和线程安全lock的问题. 1.异步处理. 一般来说如果是同步方法的异步处理,我们大多都是try catch住,但是异步方法应该怎么做呢. #re ...

  9. Jquery-全选和取消的一个坑

    在做一个商城的购物车的时候遇到了一个坑, 购物车一般都有全选按钮, 再次点击就会全部消除, 在网上查到的答案全部都是使用attr来做的, 无一例外都不能用, 之后才知道要使用jquery的prop和r ...

  10. POJ 1113 Wall (凸包)

    Description Once upon a time there was a greedy King who ordered his chief Architect to build a wall ...