Matplotlib图例
折线图示例
#!/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图例的更多相关文章
- matplotlib图例-【老鱼学matplotlib】
图例是啥,直接上图就知道了: 怎么创建上面的图例呢? 很简单,首先在plt.plot()函数中设置label文本属性,然后调用plt.legend()生成图例就可以了,完整的代码如下: import ...
- Ubuntu环境下 matplotlib 图例中文乱码
最近做了一个最小二乘法的代码编写并用 matplotlib 绘制了一张图,但是碰到了中文乱码问题.简单搜索之后,发现有人总结出了比较好的方案,亲测可行.推荐给大家. 本文前提条件是 已经 安装好 ma ...
- 解决「matplotlib 图例中文乱码」问题
在学习用 matplotlib 画图时遇到了中文显示乱码的问题,在网上找了很多需要修改配置的方法,个人还是喜欢在代码里修改. 解决方法如下: 在第2.3行代码中加上所示代码即可. import mat ...
- Matplotlib图例中文乱码
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus']=False #用来正 ...
- matplotlib 生成 eps 插入到 tex
matplotlib 生成 eps 插入到 tex matplotlib 生成 eps,就可以插入到 tex 中,而且是矢量图,放大不失真. 而且因为图中的元素都是嵌入到 pdf 中,所以图中的文字也 ...
- 使用matplotlib画双纵轴坐标
一.前言 本文主要使用matplotlib,实现双纵轴坐标的图表绘制.笔者python版本为2.7.15. 二.实践及效果 1. 需求 某个有这么一个成绩表,分别是名字,本次成绩以及进步幅度,现在需要 ...
- Mac下使用Matplotlib无法显示中文的解决办法
参考:matplotlib图例中文乱码? - 知乎用户的回答 - 知乎 https://www.zhihu.com/question/25404709/answer/309784195 1.下载字体安 ...
- matplotlib常规使用方法
1,指定图片大小和像素 Python绘图问题:Matplotlib中指定图片大小和像素 2,绘图命令的基本架构及其属性设置 绘图与可视化 3,python基础语法(二)--- plt的一些函数使用 p ...
- 小猪的Python学习之旅 —— 16.再尝Python数据分析:采集拉勾网数据分析Android就业行情...
一句话概括本文: 爬取拉钩Android职位相关数据,利用numpy,pandas和matplotlib对招人公司 情况和招聘要求进行数据分析. 引言: 在写完上一篇<浅尝Python数据分析: ...
随机推荐
- SQLServer之创建用户定义的数据库角色
创建用户定义的数据库角色注意事项 角色是数据库级别的安全对象. 在创建角色后,可以使用 grant.deny 和revoke来配置角色的数据库级权限. 若要向数据库角色添加成员,请使用alter ro ...
- Postgres 优雅存储树形数据
碰到一个树形数据需要存储再数据控制,碰到以下两个问题: 在PG数据库中如何表达树形数据 如何有效率的查询以任意节点为Root的子树 测试数据 为了更加简单一些,我们将使用一下数据 Section A ...
- extjs ajax 请求成功也会进入failure
Ext.Ajax.request({ url: '路径', method : 'post', params : { 传的参数 }, success: function (action ...
- NVIDIA-SMI系列命令总结
1 NVIDIA-SMI介绍 nvidia-smi简称NVSMI,提供监控GPU使用情况和更改GPU状态的功能,是一个跨平台工具,它支持所有标准的NVIDIA驱动程序支持的Linux发行版以及从Wi ...
- Python爬虫【实战篇】scrapy 框架爬取某招聘网存入mongodb
创建项目 scrapy startproject zhaoping 创建爬虫 cd zhaoping scrapy genspider hr zhaopingwang.com 目录结构 items.p ...
- mongoDB概述
mongoDB介绍 是一个开源的文档数据库,基于分布式文件存储的数据库.由 C++ 语言编写,并领先的 NoSQL 数据库(非关系型数据库)MongoDB 是由 c++语言编写. MongoDB 是一 ...
- 【spring源码分析】IOC容器初始化(十)
前言:前文[spring源码分析]IOC容器初始化(九)中分析了AbstractAutowireCapableBeanFactory#createBeanInstance方法中通过工厂方法创建bean ...
- ubuntu 安装 google Gtest [转]有效性待验证
最近在做一些东西,用过gtest,废话少说,现讲其再ubuntu上安装的 方法贴出来,以供朋友们参考: 安装gtest分三步: 1.安装源代码 在ubuntu的桌面上,右键选择打开终端,在终端中输入如 ...
- .NET core2.0 发布至IIS中
.NET CORE和asp.net 发布时不太一样,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角 ...
- Ubuntu 14.04 下使用微软的跨平台轻量级开发神器 Visual Studio Code
因为 Visual Studio Code 不断更新,官方最新 v1.32 的 .deb 包已经不能用于 Ubuntu 14.04 直接安装了. 下载 v1.31 的 deb 包安装即可:https: ...