折线图示例

#!/usr/bin/python2.7

import numpy as np
from matplotlib import pyplot as plt
from dbtools import raw_data
from utils import moving_sum def moving_sum(array, window):
if type(array) is not np.ndarray:
raise TypeError('Expected one dimensional numpy array.') remainder = array.size % window
if 0 != remainder:
array = array[remainder:]
array = array.reshape((array.size/window,window))
sum_arr = np.sum(array,axis=1) return sum_arr def run():
window = 3
y_lst = raw_data('2018-08-03 00:00:00', length=3600*24)
raw_arr = np.array(y_lst) sum_arr = moving_sum(raw_arr,window)
res = np.true_divide(sum_arr[1:],sum_arr[:-1]) threshold = 0.5
upper = np.array([1+threshold]*res.size)
lower = np.array([1-threshold]*res.size) plt.plot(upper,lw=1,color='red',label='Upper')
plt.plot(res,lw=1,color='blue',label='Trend')
plt.plot(lower,lw=1,color='red',label='Lower') r_idx = np.argwhere(np.abs(res-1) > 0.5)
plt.plot(r_idx, res[r_idx], 'ro') plt.legend()
plt.show() return (r_idx,res[r_idx])

画布和子图

import numpy as np
import matplotlib.pyplot as plt fig = plt.figure(figsize=[10,8])
ax1 = fig.add_subplot(2,1,1)
x1 = np.linspace(0.1,10,99,endpoint = False)
y1 = np.log(x1)
ax1.plot(x1,y1)
ax1.set_title('Logarithmic function') x2 = np.linspace(0, 5, num = 100)
y2 = np.e**x2
ax2 = fig.add_subplot(2,1,2)
ax2.plot(x2,y2)
ax2.set_title('Exponential function') plt.subplots_adjust(hspace =0.2)
fig.show()

柱状图

import numpy as np
import matplotlib.pyplot as plt data = [32,48,19,85]
labels = ['Jan','Feb','Mar','Apr'] plt.bar(np.arange(len(data)),data,color='lightgreen')
plt.xticks(np.arange(len(data)),labels)
plt.show()

饼状图

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

Matplotlib画正弦余弦曲线

K线图

 pip3.6 install https://github.com/matplotlib/mpl_finance/archive/master.zip

 from mpl_finance import candlestick_ochl

matplotlib.finance has been deprecated

 # https://github.com/Gypsying/iPython/blob/master/601318.csv

 In [2]: import pandas as pd                                                                                                                                                                                                               

 In [3]: df = pd.read_csv('601318.csv', index_col='date', parse_dates=['date'])                                                                                                                                                            

 In [4]: df.head()
Out[4]:
Unnamed: 0 open close high low volume code
date
2007-03-01 0 21.878 20.473 22.302 20.040 1977633.51 601318
2007-03-02 1 20.565 20.307 20.758 20.075 425048.32 601318
2007-03-05 2 20.119 19.419 20.202 19.047 419196.74 601318
2007-03-06 3 19.253 19.800 20.128 19.143 297727.88 601318
2007-03-07 4 19.817 20.338 20.522 19.651 287463.78 601318 In [5]: from matplotlib.dates import date2num In [6]: df['time'] = date2num(df.index.to_pydatetime()) In [7]: df.head()
Out[7]:
Unnamed: 0 open close high low volume code time
date
2007-03-01 0 21.878 20.473 22.302 20.040 1977633.51 601318 732736.0
2007-03-02 1 20.565 20.307 20.758 20.075 425048.32 601318 732737.0
2007-03-05 2 20.119 19.419 20.202 19.047 419196.74 601318 732740.0
2007-03-06 3 19.253 19.800 20.128 19.143 297727.88 601318 732741.0
2007-03-07 4 19.817 20.338 20.522 19.651 287463.78 601318 732742.0 In [8]: df.shape
Out[8]: (2563, 8) In [9]: df.size
Out[9]: 20504 In [10]: 2563*8
Out[10]: 20504 In [11]:

数据源

import numpy as np
import pandas as pd
from matplotlib.dates import date2num
from mpl_finance import candlestick_ochl # 构建 candlestick_ochl 的sequence of (time, open, close, high, low, ...)
df = pd.read_csv('601318.csv', index_col='date', parse_dates=['date'])
# time must be in float days format - see date2num
df['time'] = date2num(df.index.to_pydatetime())
# 原始数据比较多,截取一部分做展示
df = df.iloc[:300,:]
arr = df[['time','open','close','high','low']].values fig = plt.figure(figsize=[14,7])
ax = fig.add_subplot(1,1,1) candlestick_ochl(ax,arr) plt.grid(True, which='major', c='gray', ls='-', lw=1, alpha=0.2)
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. SQLServer之创建用户定义的数据库角色

    创建用户定义的数据库角色注意事项 角色是数据库级别的安全对象. 在创建角色后,可以使用 grant.deny 和revoke来配置角色的数据库级权限. 若要向数据库角色添加成员,请使用alter ro ...

  2. Postgres 优雅存储树形数据

    碰到一个树形数据需要存储再数据控制,碰到以下两个问题: 在PG数据库中如何表达树形数据 如何有效率的查询以任意节点为Root的子树 测试数据 为了更加简单一些,我们将使用一下数据 Section A ...

  3. extjs ajax 请求成功也会进入failure

     Ext.Ajax.request({ url: '路径', method : 'post',   params : {     传的参数   }, success: function (action ...

  4. NVIDIA-SMI系列命令总结

    1  NVIDIA-SMI介绍 nvidia-smi简称NVSMI,提供监控GPU使用情况和更改GPU状态的功能,是一个跨平台工具,它支持所有标准的NVIDIA驱动程序支持的Linux发行版以及从Wi ...

  5. Python爬虫【实战篇】scrapy 框架爬取某招聘网存入mongodb

    创建项目 scrapy startproject zhaoping 创建爬虫 cd zhaoping scrapy genspider hr zhaopingwang.com 目录结构 items.p ...

  6. mongoDB概述

    mongoDB介绍 是一个开源的文档数据库,基于分布式文件存储的数据库.由 C++ 语言编写,并领先的 NoSQL 数据库(非关系型数据库)MongoDB 是由 c++语言编写. MongoDB 是一 ...

  7. 【spring源码分析】IOC容器初始化(十)

    前言:前文[spring源码分析]IOC容器初始化(九)中分析了AbstractAutowireCapableBeanFactory#createBeanInstance方法中通过工厂方法创建bean ...

  8. ubuntu 安装 google Gtest [转]有效性待验证

    最近在做一些东西,用过gtest,废话少说,现讲其再ubuntu上安装的 方法贴出来,以供朋友们参考: 安装gtest分三步: 1.安装源代码 在ubuntu的桌面上,右键选择打开终端,在终端中输入如 ...

  9. .NET core2.0 发布至IIS中

    .NET CORE和asp.net 发布时不太一样,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角 ...

  10. Ubuntu 14.04 下使用微软的跨平台轻量级开发神器 Visual Studio Code

    因为 Visual Studio Code 不断更新,官方最新 v1.32 的 .deb 包已经不能用于 Ubuntu 14.04 直接安装了. 下载 v1.31 的 deb 包安装即可:https: ...