折线图示例

#!/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. [20190419]shared latch spin count 2.txt

    [20190419]shared latch spin count 2.txt --//上午测试shared latch XX模式的情况,链接:http://blog.itpub.net/267265 ...

  2. vue 利用mockJs 模拟数据

    工作这几年一直用Java 开发,前端的技术自己也忘得差不多了(实际上自己也不怎么会),最近参与的项目是用VUE +  Element-ui + springboot 写的,由于需求没有定,先画一个de ...

  3. ubuntu18.04从零开始配置环境(jdk+tomcat+idea)到使用idea开发web应用和servlet

    昨天吃了亏,搞了一下午才把环境配置好,故此将整个过程记录一下以防日后需要. 注意:因为我的博客模块的原因,所以我把图片压缩了一些,如果有看不清的, 可以  右键图片->在新标签页打开图片 目录: ...

  4. c++11の关联容器

    一.关联容器 C++的容器类型可以分为顺序容器和关联容器两大类.对于关联容器,主要有map和set,对于这两种,根据不同的维度,衍生出了8种容器 map                        ...

  5. ecshop 商品属性显示方法

    功能:在商品列表上,点击放大镜,显示商品所有属性以及其价格,效果如下: 方法/步骤: 1.编辑\admin\templates\goods_list.htm 模板,在 <!-- 商品搜索 --& ...

  6. 软工+C(4): Alpha/Beta换人

    // 上一篇:超链接 // 下一篇:工具和结构化 注:在一次软件工程讨论课程进度设计的过程中,出现了这个关于 Alpha/Beta换人机制的讨论,这个机制在不同学校有不同的实施,本篇积累各方观点,持续 ...

  7. Anaconda安装及使用

    前言 在Linux系统上一般会预安装python,但有时候版本过低,通过apt或yum无法安装较新的python版本,只能通过编译python源码进行安装.然而通过源码安装会依赖大量的库,手动安装这些 ...

  8. 通过后缀名和MIME-TYPE检查实现文件类型校验

    前言 文件上传是一个在开发中很常见的需求场景,通常出于安全考虑,我们会对上传的文件进行类型校验,其中常见的有后缀名校验,mime-type校验 话不多说,直接上代码 1.首先定义允许上传的文件类型白名 ...

  9. 2019-04-29 EasyWeb下配置Atomikos+SQLServer分布式数据源

    初次尝试: 配置Mysql时候使用的是Atomikos+DruidXADataSource,所以觉得配置SQLServer应该也是仅仅配置配置就够了,于是引入JDBC驱动依赖后,配置了文件 sprin ...

  10. python之路8-内置模块介绍

    time & datetime模块 1 #_*_coding:utf-8_*_ 2 __author__ = 'Alex Li' 3 4 import time 5 6 7 # print(t ...