折线图示例

  1. #!/usr/bin/python2.7
  2.  
  3. import numpy as np
  4. from matplotlib import pyplot as plt
  5. from dbtools import raw_data
  6. from utils import moving_sum
  7.  
  8. def moving_sum(array, window):
  9. if type(array) is not np.ndarray:
  10. raise TypeError('Expected one dimensional numpy array.')
  11.  
  12. remainder = array.size % window
  13. if 0 != remainder:
  14. array = array[remainder:]
  15. array = array.reshape((array.size/window,window))
  16. sum_arr = np.sum(array,axis=1)
  17.  
  18. return sum_arr
  19.  
  20. def run():
  21. window = 3
  22. y_lst = raw_data('2018-08-03 00:00:00', length=3600*24)
  23. raw_arr = np.array(y_lst)
  24.  
  25. sum_arr = moving_sum(raw_arr,window)
  26. res = np.true_divide(sum_arr[1:],sum_arr[:-1])
  27.  
  28. threshold = 0.5
  29. upper = np.array([1+threshold]*res.size)
  30. lower = np.array([1-threshold]*res.size)
  31.  
  32. plt.plot(upper,lw=1,color='red',label='Upper')
  33. plt.plot(res,lw=1,color='blue',label='Trend')
  34. plt.plot(lower,lw=1,color='red',label='Lower')
  35.  
  36. r_idx = np.argwhere(np.abs(res-1) > 0.5)
  37. plt.plot(r_idx, res[r_idx], 'ro')
  38.  
  39. plt.legend()
  40. plt.show()
  41.  
  42. return (r_idx,res[r_idx])

画布和子图

  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3.  
  4. fig = plt.figure(figsize=[10,8])
  5. ax1 = fig.add_subplot(2,1,1)
  6. x1 = np.linspace(0.1,10,99,endpoint = False)
  7. y1 = np.log(x1)
  8. ax1.plot(x1,y1)
  9. ax1.set_title('Logarithmic function')
  10.  
  11. x2 = np.linspace(0, 5, num = 100)
  12. y2 = np.e**x2
  13. ax2 = fig.add_subplot(2,1,2)
  14. ax2.plot(x2,y2)
  15. ax2.set_title('Exponential function')
  16.  
  17. plt.subplots_adjust(hspace =0.2)
  18. fig.show()

柱状图

  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3.  
  4. data = [32,48,19,85]
  5. labels = ['Jan','Feb','Mar','Apr']
  6.  
  7. plt.bar(np.arange(len(data)),data,color='lightgreen')
  8. plt.xticks(np.arange(len(data)),labels)
  9. plt.show()

饼状图

  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3.  
  4. data = [35,47,13,5]
  5. labels = ['Bili','iQiYi','Tencent','YouKu']
  6. plt.pie(data,labels=labels,autopct="%.2f%%",explode=[0.1,0,0,0],shadow=True)
  7. plt.show()

Matplotlib画正弦余弦曲线

K线图

  1. pip3.6 install https://github.com/matplotlib/mpl_finance/archive/master.zip
  2.  
  3. from mpl_finance import candlestick_ochl

matplotlib.finance has been deprecated

  1. # https://github.com/Gypsying/iPython/blob/master/601318.csv
  2.  
  3. In [2]: import pandas as pd
  4.  
  5. In [3]: df = pd.read_csv('601318.csv', index_col='date', parse_dates=['date'])
  6.  
  7. In [4]: df.head()
  8. Out[4]:
  9. Unnamed: 0 open close high low volume code
  10. date
  11. 2007-03-01 0 21.878 20.473 22.302 20.040 1977633.51 601318
  12. 2007-03-02 1 20.565 20.307 20.758 20.075 425048.32 601318
  13. 2007-03-05 2 20.119 19.419 20.202 19.047 419196.74 601318
  14. 2007-03-06 3 19.253 19.800 20.128 19.143 297727.88 601318
  15. 2007-03-07 4 19.817 20.338 20.522 19.651 287463.78 601318
  16.  
  17. In [5]: from matplotlib.dates import date2num
  18.  
  19. In [6]: df['time'] = date2num(df.index.to_pydatetime())
  20.  
  21. In [7]: df.head()
  22. Out[7]:
  23. Unnamed: 0 open close high low volume code time
  24. date
  25. 2007-03-01 0 21.878 20.473 22.302 20.040 1977633.51 601318 732736.0
  26. 2007-03-02 1 20.565 20.307 20.758 20.075 425048.32 601318 732737.0
  27. 2007-03-05 2 20.119 19.419 20.202 19.047 419196.74 601318 732740.0
  28. 2007-03-06 3 19.253 19.800 20.128 19.143 297727.88 601318 732741.0
  29. 2007-03-07 4 19.817 20.338 20.522 19.651 287463.78 601318 732742.0
  30.  
  31. In [8]: df.shape
  32. Out[8]: (2563, 8)
  33.  
  34. In [9]: df.size
  35. Out[9]: 20504
  36.  
  37. In [10]: 2563*8
  38. Out[10]: 20504
  39.  
  40. In [11]:

数据源

  1. import numpy as np
  2. import pandas as pd
  3. from matplotlib.dates import date2num
  4. from mpl_finance import candlestick_ochl
  5.  
  6. # 构建 candlestick_ochl 的sequence of (time, open, close, high, low, ...)
  7. df = pd.read_csv('601318.csv', index_col='date', parse_dates=['date'])
  8. # time must be in float days format - see date2num
  9. df['time'] = date2num(df.index.to_pydatetime())
  10. # 原始数据比较多,截取一部分做展示
  11. df = df.iloc[:300,:]
  12. arr = df[['time','open','close','high','low']].values
  13.  
  14. fig = plt.figure(figsize=[14,7])
  15. ax = fig.add_subplot(1,1,1)
  16.  
  17. candlestick_ochl(ax,arr)
  18.  
  19. plt.grid(True, which='major', c='gray', ls='-', lw=1, alpha=0.2)
  20. fig.show()

  

Matplotlib图例的更多相关文章

  1. matplotlib图例-【老鱼学matplotlib】

    图例是啥,直接上图就知道了: 怎么创建上面的图例呢? 很简单,首先在plt.plot()函数中设置label文本属性,然后调用plt.legend()生成图例就可以了,完整的代码如下: import ...

  2. Ubuntu环境下 matplotlib 图例中文乱码

    最近做了一个最小二乘法的代码编写并用 matplotlib 绘制了一张图,但是碰到了中文乱码问题.简单搜索之后,发现有人总结出了比较好的方案,亲测可行.推荐给大家. 本文前提条件是 已经 安装好 ma ...

  3. 解决「matplotlib 图例中文乱码」问题

    在学习用 matplotlib 画图时遇到了中文显示乱码的问题,在网上找了很多需要修改配置的方法,个人还是喜欢在代码里修改. 解决方法如下: 在第2.3行代码中加上所示代码即可. import mat ...

  4. Matplotlib图例中文乱码

    plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus']=False #用来正 ...

  5. matplotlib 生成 eps 插入到 tex

    matplotlib 生成 eps 插入到 tex matplotlib 生成 eps,就可以插入到 tex 中,而且是矢量图,放大不失真. 而且因为图中的元素都是嵌入到 pdf 中,所以图中的文字也 ...

  6. 使用matplotlib画双纵轴坐标

    一.前言 本文主要使用matplotlib,实现双纵轴坐标的图表绘制.笔者python版本为2.7.15. 二.实践及效果 1. 需求 某个有这么一个成绩表,分别是名字,本次成绩以及进步幅度,现在需要 ...

  7. Mac下使用Matplotlib无法显示中文的解决办法

    参考:matplotlib图例中文乱码? - 知乎用户的回答 - 知乎 https://www.zhihu.com/question/25404709/answer/309784195 1.下载字体安 ...

  8. matplotlib常规使用方法

    1,指定图片大小和像素 Python绘图问题:Matplotlib中指定图片大小和像素 2,绘图命令的基本架构及其属性设置 绘图与可视化 3,python基础语法(二)--- plt的一些函数使用 p ...

  9. 小猪的Python学习之旅 —— 16.再尝Python数据分析:采集拉勾网数据分析Android就业行情...

    一句话概括本文: 爬取拉钩Android职位相关数据,利用numpy,pandas和matplotlib对招人公司 情况和招聘要求进行数据分析. 引言: 在写完上一篇<浅尝Python数据分析: ...

随机推荐

  1. 利用Navicat高效率postgresql转mysql数据库

    本人很喜欢postgresql数据库,也一直认为postgresql比mysql要更好更强大. 可生态环境太差了,无奈,最近要把一个小站转成mysql数据库. 小站主要表数据110万,pg_dump备 ...

  2. hexo 建站参考

    1. hexo 官网 2. 主题 AD:https://godbmw.com/ 前期尝试了两天都是看主题,还有编辑主题,最终选择这个主题是因为两点 主题layout是 ejs 学习node时候了解过  ...

  3. python开发之路-LuffyCity

    阅读目录 一.python基础语法 二.python基础之字符编码 三.python基础之文件操作 四.python基础小练习 五.python之函数基础 六.python之函数对象.函数嵌套.名称空 ...

  4. dump文件解析之探索.Net的内存

    前言: 对于需要长时间运行的.net程序,有时需要我们查看内存的使用有没有内存泄露问题. 我们可以从dump文件中找到答案. Dump的看点 用dump文件来分析内存,到底我们需要关心哪些点呢? 内存 ...

  5. openstack安装过程报错

    问题一 .执行启动neutron服务报错[root@localhost ~]# systemctl start neutron-server.service Job for neutron-serve ...

  6. 周末学习笔记——day03(模块,包)

    一,复习 ''' 装饰器 @wraper # fn = wraper(fn) def fn(): pass def wrap(arg): def outer(func): # 可以用arg def i ...

  7. 微信内点击链接或扫描二维码可直接用外部浏览器打开H5链接的解决方案

    很多朋友问我怎么解决微信内点击链接或扫描二维码可以直接跳出微信在外部浏览器打开网页链接,其实这并不难,只要我们使用微信跳转浏览器接口实现跳转功能即可. 简单的处理方案 1. 用浏览器打开我们需要用到的 ...

  8. Net包管理NuGet(3)搭建私服及引用私服的包

    1,打开vs创建项目(ASP.NET WEB空项目)假设命名为MyNuGet 空项目解决方案如图 2,右键引用>管理NuGet程序包>切到浏览搜索NuGet.Server然后安装(3.1. ...

  9. Python网络爬虫精要

    目的 学习如何从互联网上获取数据.数据科学必须掌握的技能之一. 本文所用到的第三方库如下: requests, parsel, selenium requests负责向网页发送HTTP请求并得到响应, ...

  10. Django-5 模板层

    Django 模板层 在之前的例子中,我们采用了硬编码的方式,来返回文本 def current_datetime(request): now = datetime.datetime.now() ht ...