精华内容
下载资源
问答
  • 本章我们讨论的是如何绘制实时图表,用到的知识是Matplotlib的动画功能。 # -*- coding: utf-8 -*- import matplotlib.pyplot as plt import matplotlib.animation as animation from matplotlib import style ...

    本章我们讨论的是如何绘制实时图表,用到的知识是Matplotlib的动画功能。

    # -*- coding: utf-8 -*-
    import matplotlib.pyplot as plt
    import matplotlib.animation as animation
    from matplotlib import style
    from matplotlib.font_manager import FontProperties
    font = FontProperties(fname=r"C:\Windows\Fonts\simhei.ttf", size=14)  
    
    # 这个是style的内置风格 
    style.use('fivethirtyeight')
    
    # 多次使用figure函数可以绘制产生多个图,其中,图片号按顺序增加。
    # 这里,要注意一个概念当前图和当前坐标。所有绘图操作仅对当前图和当前坐标有效.
    
    
    
    # 你可以尝试下面这段代码,就可以理解figure的含义 
    
    # plt.figure(1) # 第一张图  
    # plt.subplot(211) # 第一张图中的第一张子图  
    # plt.plot([1,2,3])  
    # plt.subplot(212) # 第一张图中的第二张子图  
    # plt.plot([4,5,6])  
    # plt.figure(2) # 第二张图  
    # plt.plot([4,5,6]) # 默认创建子图subplot(111)  
    # plt.figure(1) # 切换到figure 1 ; 子图subplot(212)仍旧是当前图  
    # plt.subplot(211) # 令子图subplot(211)成为figure1的当前图  
    # plt.title('Easy as 1,2,3') # 添加subplot 211 的标题
    
    fig = plt.figure()
    ax1 = fig.add_subplot(1,1,1)
    
    def animate(i):
        graph_data = open('example.txt', 'r').read()
        lines = graph_data.split('\n')
        xs = []
        ys = []
    
        for line in lines:
            if len(line) > 1:
                x, y = line.split(',')
                xs.append(x)
                ys.append(y)
    
        ax1.clear()
        ax1.plot(xs, ys)
    
    ani = animation.FuncAnimation(fig, animate, interval = 1000)
    
    plt.show()
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    展开全文
  • 如何使用seaborn绘制组合

    千次阅读 2019-12-12 09:00:00
    昨天教程 股评师分析报告文本情感分析预测股价 最后绘制的图片横坐标都是一样的,我想将价格与情感得分合并到一个中,这样更方便查看看趋势走势是否一致性。如下今日主要是学习如何将共享某...

    昨天教程   股评师分析报告文本情感分析预测股价 最后绘制的图片

    横坐标都是一样的,我想将价格与情感得分合并到一个图中,这样更方便查看看趋势走势是否一致性。如下图

    今日主要是学习如何将共享某一坐标轴的两个图合并到一个图。

    实验数据

    import pandas as pd
    import matplotlib
    import matplotlib.pyplot as plt
    import seaborn as sns
    Month = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'June', 
             'July', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
    #create list for made up average temperatures
    Avg_Temp = [35, 45, 55, 65, 75, 85, 95, 100, 85, 65, 45, 35]
    #create list for made up average percipitation %
    Avg_Percipitation_Perc = [.90, .75, .55, .10, .35, .05, .05, .08, .20, .45, .65, .80]
    data = {'Month': Month, 
            'Avg_Temp': Avg_Temp, 
            'Avg_Percipitation_Perc': Avg_Percipitation_Perc}
    #将字典转为dataframe
    df = pd.DataFrame(data)
    df
    

    #条形图
    plt.title('Average Temperature by Month')
    sns.barplot(x='Month', 
                y='Avg_Temp', 
                data=df, 
                palette='summer')
    

    plt.title('Average Percipitation Percentage by Month')
    sns.lineplot(x='Month', 
                 y='Avg_Percipitation_Perc', 
                 data=df, 
                 sort=False)
    

    上面两个图横坐标都是month,我们要想办法合并到一个图中。也就是第二个图复制第一个图的横坐标系,在第一个图基础上叠加上折线图

    #绘制基础图层
    fig, ax1 = plt.subplots(figsize=(10,6))
    color = 'tab:green'
    ax1.set_title('Average Percipitation Percentage by Month', fontsize=16)
    ax1.set_xlabel('Month', fontsize=16)
    ax1.set_ylabel('Avg Temp', fontsize=16, color=color)
    #第一图条形图
    ax1 = sns.barplot(x='Month', y='Avg_Temp', data = df, palette='summer')
    ax1.tick_params(axis='y')
    #twinx共享x轴(类似的语法,如共享y轴twiny)
    ax2 = ax1.twinx()
    color = 'tab:red'
    #第二个图,折线图
    ax2.set_ylabel('Avg Percipitation %', fontsize=16, color=color)
    ax2 = sns.lineplot(x='Month', y='Avg_Percipitation_Perc', data = df, sort=False, color=color)
    ax2.tick_params(axis='y', color=color)
    #显示绘制结果
    plt.show()
    

    现在学会了,可以复习下昨天的教程 股评师分析报告文本情感分析预测股价,想办法实现股价与情感分放到一个图中。

    近期文章

    精选课程 | Python数据分析实战(学术)

    代码不到40行的超燃动态排序图

    使用Python自动生成事件分析图谱

    Loughran&McDonald金融文本情感分析库

    使用分析师报告中含有的情感信息预测上市公司股价变动

    日期数据操作第1期 datetime库

    日期数据操作第2期 pandas库

    史上最大规模1.4亿中文知识图谱开源下载

    【公开视频课】Python语法快速入门

    【公开视频课】ython爬虫快速入门

    文本数据分析文章汇总(2016-至今)

    当文本分析遇到乱码(ง'⌣')ง怎么办?

    当pandas遇上数据类型问题

    如何理解pandas中的transform函数

    一行pandas代码生成哑变量

    Python最被低估的库,用好了效率提升10倍!

    课件获取方式,请在公众号后台回复关键词“20191212

    觉得本文有用,请不吝点赞评论转发~谢谢支持~

    展开全文
  • 背景:处理50etf和对应的认沽认购数据时,想将这三者的时间-价格走势在同一张图中体现。数据源是每日的分笔数据。整合后如下: ![图片说明](https://img-ask.csdn.net/upload/201906/16/1560661788_443267.png) ...
  • 首先我们来说下 1. 十字光标是做什么用的。...了解了这些, 我们就可以开始讲如何做十字光标了。 首先我们要解决的一个问题就是十字光标在左右移动的时候, 屏幕的重绘的问题。 假设目前屏幕上显示一个2000年-2...

    首先我们来说下 
        1. 十字光标是做什么用的。十字光标用来查看某一天或某一个时间点上对应的行情数据及各个窗口对应指标数据。
        2. 哪些操作可以控制十字光标。键盘左右, 鼠标左右移动, 手机端手势的左右移动。
    了解了这些, 我们就可以开始讲如何做十字光标了。
       首先我们要解决的一个问题就是十字光标在左右移动的时候, 屏幕的重绘的问题。 
       假设目前屏幕上显示一个2000年-2018年的数据,一年我们算200个交易日(18*200=3600个数据), 我们就说一个主图吧。k线柱子 + MA5(线段) + MA10(线段)+ M20(线段)。也就是说十字光标每移动一下就需要绘制3600个柱子+3600点的线段3根。如果你们机器够好,GPU够快应该没什么问题, 但大部分一般的配置机器就会卡, 网页也一样。 那就是说鼠标移动的时候全屏重绘是一个不太好的解决方案。 解决这个问题我们首先要了解十字光标移动的时候,哪些UI是变动的,哪些UI是不变动的。看下图

    用红框框出来的都是动态变动的,其他的都是不变的。


    接下来解决方案的思路就是只重绘变动的数据, 其他的不重绘。这个需要结合各个语言和平台接口来制定具体的解决方案。以下是我所开发过的平台的解决方案,
    1. c++ windows平台 (双缓存绘图这个是必须的就不说了)
       把每个指标窗口分割成3部分, 下图有标识这3个部分
           1. 框架内部具体的图形区域 (黄色框)
           2. 框架外部具体的坐标刻度区域  (红色框)
           3. 指标标题部分 (蓝色框)

     

    看图2,3区域是需要重绘的, 1号区域是不要重绘了。那么windows有重绘部分区域的函数吗?
           InvalidateRect/InvalidateRgn 可以通知窗口重绘部分区域 (https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-invalidaterect)
           BeginPaint 可以获取到上面2个函数传递过来的重回的区域(https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-beginpaint)

    通过上面的2个函数,十字光标移动的时候我们就重绘2,3区域。 哪还有一个十字线段是横跨图区区域,这个如何解决, 我们继续查api文档,
       SetROP2 (https://docs.microsoft.com/en-us/windows/desktop/api/wingdi/nf-wingdi-setrop2)这个函数提供一个异或绘制功能,也就是在原来的绘制十字线的地方再绘制一边就可以擦出掉,再在新的地方绘制十字线

    ok . c++的完整的解决方案就全部给出来了。 (第3方框架的绘图本人没用过不清楚解决方案,只用过windows api绘图)

    2. canvas H5 页面解决方案
       由于canvas没有提供异或擦出线段的函数(我没找到, 如果你知道可以告诉我),所以十字光标移动就只能是全屏重绘了。那有什么方法可以绘制的快点呢?继续查找api文档
       我们找到了 getImageData(),和putImageData() (https://developer.mozilla.org/en-US/docs/Web/API/ImageData) 这2个函数可以保存当前画布的数据和设置画布的数据。
       方案: 第1次绘制 
                1) 绘制坐标和图形
                2) getImageData() 把当前数据保存
                3) 绘制指标标题
                4)绘制十字光标
              十字光标移动的时候
                1) putImageData() 把上一次画的数据贴回去
                2)绘制指标标题
                3)绘制十字光标

     

    3. 微信小程序解决方案
       如果用h5页面的解决方案来做微信小程序,恭喜你, 你踩雷了,小程序比h5页面弱多了,wx.canvasPutImageData() 这个函数巨慢无比而且还有数据大小显示,太大的数据直接就报错。那这么版本,继续查api文档。
       我们找到 wx.canvasToTempFilePath 这个函数可以把画布的信息保存到缓存文件 相当于h5的getImageData(), 然后再用drawImage() 把图片贴回去。
       方案:
                第1次绘制 (好在手机没有鼠标,所以十字光标只有在手势移动的时候才出现)
                1) 绘制坐标和图形
                3) 绘制指标标题 (可以画也可以不画看你自己了)
                2) wx.canvasToTempFilePath () 把当前数据保存
                
                手势移动十字光标
                1)drawImage 把保存的缓存图片贴回去
                2)绘制指标标题 (如果你们第1次是绘制的画, 你直接用背景色把标题区域绘制下,然后再写标题)
                3)绘制十字光标

    对了还漏了一个K线上的tooltip提示框信息


    c++ windows上 创建一个非模态窗口,窗口透明度设置下, 十字光标移动的时候movewindows到对应为位置就可以。这个就不多说了
    h5页面 用div来做这个比较快, 十字光标移动的时候把div移动到对应为位置就可以
    移动端:最好使用画布画,使用div有些框架不支持操作dom, 你就会歇菜了,响应速度上也比用div快,就是开发麻烦。

    最后一个问题 为什么K线的tooltip是用div ,但是指标的信息不用div做呢?
    1. 位置的关系,K线的tooltip显示的位置可能会超出画图的区域,而指标信息是固定的位置不会超出画布区域
    2. 速度上没有画布上直接画快。 div 设置数据(有些数据还需要根据数值来显示红或绿色这样还需要动态的绑定到css的元素)会消耗一点时间, pc端感觉不大,移动端会有延迟的感觉。 
    3. 第3放的小程序,可能都不允许你操作document的,微信小程序就是。 为了移动端更好的兼容,用画布画兼容性更好一点

    实例代码:https://github.com/jones2000/HQChart

    下一章 我们来讲下K线图

    展开全文
  • 教你如何绘制走势图

    640?wx_fmt=png

    今日科技快讯

    近日中消协陆续接到消费者反映自己使用的iPhone6和iPhone6s系列手机在仍有50%至60%电量的情况下自动关机、系统升级后自动关机情况仍存在、环境较冷甚至室温时自动关机、自动关机后不连接充电器无法开机等现象。中消协已就此事约谈苹果电脑贸易(上海)有限公司相关负责人。

    苹果公司方面表示正积极与美国公司总部进行沟通,就相关产品问题做出技术判断。对于目前部分已投诉的消费者,苹果公司承诺将采取更换电池的方式来保障消费者的正常使用。

    作者简介多

    本篇来自 清风明月 的投稿,分享了如何绘制统计图表,希望能帮助有需要的朋友。

    清风明月 的博客地址:

    http://www.jianshu.com/users/a7c0ac8c85b3

    正文

    最近做一个android智能手表的app,要给用户呈现的就是用户每天,每周,每月数据信息,既然要使得用户能一眼就看出自己的数据趋势,当然最好的就是折线统计图或者柱状图。要实现这要的功能就需要借助于android强大的自定义控件。

    闲话休提,言归正传,惯例先上效果,如下:

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    下面开始自定义控件的第一步:

    1. 在工程目录res/values下新建attrs文件

    2. 在文件中声明需要的属性

    640?wx_fmt=png

    3. 在工程目录指定包名下创建自定义控件的类:

    640?wx_fmt=png

    该类声明了三个参数的构造函数,让一个参数的构造函数调用二个参数的构造函数,让两个参数的构造函数调用三个参数的构造函数,接下来在第三个参数的构造函数中获取我们自定义控件的属性值:

    老板,我贴代码了哦!

    640?wx_fmt=png

    好了,准备工作差不多了,然后呢?然后测量宽高后就开始画图了。

    640?wx_fmt=png

    开始画图了:

    重写onDraw(),在里面绘制坐标系:

    640?wx_fmt=png

    640?wx_fmt=jpeg

    接下来绘制X轴上的时间值,这里以周为例,因为没有真实的数据,此次讲义都已模拟数据为主;

    定义一个数组,然后将X轴等分为7等分,画上间断线,写上数值

    640?wx_fmt=png

    上图:

    640?wx_fmt=jpeg

    上面的逻辑和计算并不复杂,就是将X轴的距离等分7等分,然后画上间断线和数值就OK了。

    接下来计算Y轴上的要画得数值,因为Y轴上的数值要根据用户的真实数据来确定,所以幅度很大,不确定性因素也很多。这样就需要我们动态的计算Y轴上的数值区间:

    首先计算出用户数据中的最大值和最小值来确定区间

    将计算出的最大值和最小值向上向下取一定幅度的值,比如最大值123,最小值63,最大值就可以取123+10,最小值取60-10

    640?wx_fmt=png

    上面的代码显然是统一加上了某个数值,这个数值可以根据你的项目需求自己定义,但取下限的时候显然就要减去某个数值:具体为什么要这么做注释写得比较详细。

    真正意义上的计算Y轴上数值刻度了:

    640?wx_fmt=png

    这样就计算出来了Y轴需要动态画的数值。

    接下来就开始画吧:模拟数据的代码这里就不贴了,后面会给出整个项目的源码,感兴趣的自己看看就懂了。

    640?wx_fmt=png

    效果图:

    640?wx_fmt=jpeg

    显然,画线的逻辑并不复杂,只是计算Y轴上的值花了一定精力。

    现在画折线了:

    首先画出小圆点,然后将各个小圆点收尾相连接就是折线效果了:

    640?wx_fmt=png

    注意上面的arraymax yMin两个值的含义。arraymax一定是Y轴上区间的差值,比如轴上的数组为[60,70,80,90,100],那么arrayma就是100-60;yMin见注释。

    这里为什么要画两个圆?两个同心圆能够达到大圆是空心的效果,那画笔设置为STROKE不就行了?

    640?wx_fmt=jpeg

    看到了吧,感觉从圆中间穿过去了,是不是觉得不爽啊,于是有人就说,我把圆的半径算出来就行了,画线的时候减去这个半径,哥哥,如果前后两点不在同一直线上你还得算夹角,你慢慢算吧。算好了告诉我!

    640?wx_fmt=jpeg

    是不是美观很多啊?骚年?

    这里的工作基本就完了,至于睡眠要画两条线,获取不同的数据 调用两次画圆点和线的方法就OK了。

    至于代码里如果觉得部分逻辑混乱冗余,那就将就一下吧。

    最后附上源码地址:

    https://git.oschina.net/xy001/anroidwatchtable

    更多

    每天学习累了,看些搞笑的段子放松一下吧。关注最具娱乐精神的公众号,每天都有好心情。

    640?wx_fmt=gif

    如果你有好的技术文章想和大家分享,欢迎向我的公众号投稿,投稿具体细节请在公众号主页点击“投稿”菜单查看。

    欢迎长按下图 -> 识别图中二维码或者扫一扫关注我的公众号:

    640?wx_fmt=jpeg

    展开全文
  • 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、魔法是什么?二、使用步骤1.引入库2.读入数据结果 前言 魔法命令 提示:以下是本篇文章正文内容,下面案例可供参考 一、魔法...
  • 其实这个堆积折线图在我们日常生活中最容易见到的哦,比如股市常见的走势图就是典型的堆积折线图哦,说一下它的官方定义吧, 堆积折线图就是通过绘制不同数据集的折线图生成的图表,是按照垂直方向上彼此堆叠且又不...
  • 我们上一张已经讲过如何...作者计算了1983-2015发病率年度百分比变化和发病率走势图,使得发病率走势一目了然,是个加分项。我们今天来讲讲怎么像文章一样从SEER数据库提取发病率数据,并做出发病率走势图。 首先打开.
  • 如何画Flot折线

    千次阅读 2016-05-05 14:43:25
    折线是最常被使用的图形, 也是最容易绘制的图表, 它可以显示时间与趋势的走向, 将各项数据图表化, 让人可以对这些数字与时间的相对关系一目了然, 因为这是Flot教学里第一个图表, 我们会完整的呈现所有细节及过程....
  • 来源:雪球App,作者: 醉青弦,(https://xueqiu.com/8266853682/137436458)一、大盘指数即时分时走势图大盘指数即时分时走势图,是指大盘指数以每分钟指数变化绘制成曲线的走势图,反映了大盘指数在某个交易日内的...
  • 用python tkinter显示股票的数据,将绘制的图形显示到tkinter:创建属于root的canvas画布,并将f置于画布上 漂亮的界面是量化程序的脸面,直观专业的界面能帮助我们了解股票的走势和形象地展示量化交易的结果。本文...
  • 需要连接数据库读取商品走势数据,数据库文件放在Database文件夹中,对于搞C#的来说,什么情况都可能遇到,学会使用柱状、圆饼较等图表来分析数据,也是必不可少的,通过本例子源码你可以了解到如何使用visual C#...
  • 如何手工绘制K线怎么确定时间和价格的比例?请教:手画k线(日、周、月、年),是取收盘价还是。。。?怎样画?谢。如何用坐标纸画股票k线股票的K线怎么画图。我想知道自己画图这方面的知识..如果有网站教这一...
  • 图表控件ChartDirector使用教程:走势图绘制方法 图表控件ChartDirector使用教程:绘制仪表盘(含源码) 图表控件ChartDirector使用教程:坐标设置详解(代码示例) 图表控件ChartDirector使用教程:绘制证券走势...
  • 十六章小结: 本章学习了 如何使用网上的数据集; 如何处理CSV和JSON文件,以及如何提取感兴趣的数据; 如何使用matplotlib来处理以往的天气数据,包括如何使用...制作交易收盘价走势图:JSON格式 下载收盘价数..
  • Web图表控件ChartDirector中文教程一

    千次阅读 2013-01-21 17:48:38
    图表控件ChartDirector使用教程:走势图绘制方法 图表控件ChartDirector使用教程:绘制仪表盘(含源码) 图表控件ChartDirector使用教程:坐标设置详解(代码示例) 图表控件ChartDirector使用教程:绘制证券走势...
  • 如何(c++,js)写一个传统的K线图和走势图2-走势图 如何(c++,js)写一个传统的K线图和走势图3-多指标窗口模式如何实现的 如何(c++,js)写一个传统的K线图和走势图3-十字光标的绘制 如何(c++,js)写一个传统的K线...
  • HQChart使用教程30-K线如何对接第3方数据10-如何绘制自定义线段或多边行指标数据 HQChart使用教程30-K线如何对接第3方数据11-如何绘制多组自定义图标 HQChart使用教程30-K线如何对接第3方数据12-如何在...
  • 根据时间及价格波动绘制价格走势图 根据时间及价格波动绘制价格对比图 使用了GDI+实现精确绘图 (小数点绘图) 对数据库的示图操作。 软件开发中,只实现了部分功能,对掌握用MFC如何操作数据库有很大帮助。 使用...
  • 我为[0,10]内的每个步骤计算了E [S n ],并在一张绘制了所有路径。 我为1000个步骤模拟了6条路径,为10个步骤模拟了1条模拟路径。 使用10个步骤模拟的路径不能捕获股票的波动性,并且不能准确地表示预期的股票...
  • 实例071 如何将字节单位B转换成GB、MB 和KB 108 实例072 身份证号从15位升到18位算法 109 第3章 面向对象编程思想 111 3.1 面向对象家族核心——类与类成员 112 实例073 面向对象编程核心——类、对象和引用 112 ...
  • 实例071 如何将字节单位B转换成GB、MB 和KB 108 实例072 身份证号从15位升到18位算法 109 第3章 面向对象编程思想 111 3.1 面向对象家族核心——类与类成员 112 实例073 面向对象编程核心——类、对象和引用 112 ...
  • 实例071 如何将字节单位B转换成GB、MB 和KB 108 实例072 身份证号从15位升到18位算法 109 第3章 面向对象编程思想 111 3.1 面向对象家族核心——类与类成员 112 实例073 面向对象编程核心——类、对象和引用 112 ...
  • 实例253 在ListView控件中绘制底纹 实例254 在列表视图中拖动视图项 实例255 使ListView控件中的选择项高亮显示 实例256 制作带复选框的ListView控件 11.7 选择类控件应用 实例257 利用选择控件实现权限设置 ...
  • 实例253 在ListView控件中绘制底纹 实例254 在列表视图中拖动视图项 实例255 使ListView控件中的选择项高亮显示 实例256 制作带复选框的ListView控件 11.7 选择类控件应用 实例257 利用选择控件实现权限设置 ...

空空如也

空空如也

1 2 3 4
收藏数 63
精华内容 25
关键字:

如何绘制走势图