绘图python_Python绘图

1.二维绘图

a. 一维数据集

用 Numpy ndarray 作为数据传入 ply

1.

import numpy as np

import matplotlib as mpl

import matplotlib.pyplot as plt

np.random.seed(1000)

y = np.random.standard_normal(10)

print "y = %s"% y

x = range(len(y))

print "x=%s"% x

plt.plot(y)

plt.show()

2.操纵坐标轴和增加网格及标签的函数

import numpy as np

import matplotlib as mpl

import matplotlib.pyplot as plt

np.random.seed(1000)

y = np.random.standard_normal(10)

plt.plot(y.cumsum())

plt.grid(True) ##增加格点

plt.axis('tight') # 坐标轴适应数据量 axis 设置坐标轴

plt.show()

3.plt.xlim 和 plt.ylim 设置每个坐标轴的最小值和最大值

#!/etc/bin/python

#coding=utf-8

import numpy as np

import matplotlib as mpl

import matplotlib.pyplot as plt

np.random.seed(1000)

y = np.random.standard_normal(20)

plt.plot(y.cumsum())

plt.grid(True) ##增加格点

plt.xlim(-1,20)

plt.ylim(np.min(y.cumsum())- 1, np.max(y.cumsum()) + 1)

plt.show()

4. 添加标题和标签 plt.title, plt.xlabe, plt.ylabel 离散点, 线

#!/etc/bin/python

#coding=utf-8

import numpy as np

import matplotlib as mpl

import matplotlib.pyplot as plt

np.random.seed(1000)

y = np.random.standard_normal(20)

plt.figure(figsize=(7,4)) #画布大小

plt.plot(y.cumsum(),'b',lw = 1.5) # 蓝色的线

plt.plot(y.cumsum(),'ro') #离散的点

plt.grid(True)

plt.axis('tight')

plt.xlabel('index')

plt.ylabel('value')

plt.title('A simple Plot')

plt.show()

b. 二维数据集

np.random.seed(2000)

y = np.random.standard_normal((10, 2)).cumsum(axis=0) #10行2列 在这个数组上调用cumsum 计算赝本数据在0轴(即第一维)上的总和

print y

1.两个数据集绘图

#!/etc/bin/python

#coding=utf-8

import numpy as np

import matplotlib as mpl

import matplotlib.pyplot as plt

np.random.seed(2000)

y = np.random.standard_normal((10, 2))

plt.figure(figsize=(7,5))

plt.plot(y, lw = 1.5)

plt.plot(y, 'ro')

plt.grid(True)

plt.axis('tight')

plt.xlabel('index')

plt.ylabel('value')

plt.title('A simple plot')

plt.show()

2.添加图例 plt.legend(loc = 0)

#!/etc/bin/python

#coding=utf-8

import numpy as np

import matplotlib as mpl

import matplotlib.pyplot as plt

np.random.seed(2000)

y = np.random.standard_normal((10, 2))

plt.figure(figsize=(7,5))

plt.plot(y[:,0], lw = 1.5,label = '1st')

plt.plot(y[:,1], lw = 1.5, label = '2st')

plt.plot(y, 'ro')

plt.grid(True)

plt.legend(loc = 0) #图例位置自动

plt.axis('tight')

plt.xlabel('index')

plt.ylabel('value')

plt.title('A simple plot')

plt.show()

3.使用2个 Y轴(左右)fig, ax1 = plt.subplots() ax2 = ax1.twinx()

#!/etc/bin/python

#coding=utf-8

import numpy as np

import matplotlib as mpl

import matplotlib.pyplot as plt

np.random.seed(2000)

y = np.random.standard_normal((10, 2))

fig, ax1 = plt.subplots() # 关键代码1 plt first data set using first (left) axis

plt.plot(y[:,0], lw = 1.5,label = '1st')

plt.plot(y[:,0], 'ro')

plt.grid(True)

plt.legend(loc = 0) #图例位置自动

plt.axis('tight')

plt.xlabel('index')

plt.ylabel('value')

plt.title('A simple plot')

ax2 = ax1.twinx() #关键代码2 plt second data set using second(right) axis

plt.plot(y[:,1],'g', lw = 1.5, label = '2nd')

plt.plot(y[:,1], 'ro')

plt.legend(loc = 0)

plt.ylabel('value 2nd')

plt.show()

4.使用两个子图(上下,左右)plt.subplot(211)

通过使用 plt.subplots 函数,可以直接访问底层绘图对象,例如可以用它生成和第一个子图共享 x 轴的第二个子图.

#!/etc/bin/python

#coding=utf-8

import numpy as np

import matplotlib as mpl

import matplotlib.pyplot as plt

np.random.seed(2000)

y = np.random.standard_normal((10, 2))

plt.figure(figsize=(7,5))

plt.subplot(211) #两行一列,第一个图

plt.plot(y[:,0], lw = 1.5,label = '1st')

plt.plot(y[:,0], 'ro')

plt.grid(True)

plt.legend(loc = 0) #图例位置自动

plt.axis('tight')

plt.ylabel('value')

plt.title('A simple plot')

plt.subplot(212) #两行一列.第二个图

plt.plot(y[:,1],'g', lw = 1.5, label = '2nd')

plt.plot(y[:,1], 'ro')

plt.grid(True)

plt.legend(loc = 0)

plt.xlabel('index')

plt.ylabel('value 2nd')

plt.axis('tight')

plt.show()

5.左右子图

有时候,选择两个不同的图标类型来可视化数据可能是必要的或者是理想的.利用子图方法:

#!/etc/bin/python

#coding=utf-8

import numpy as np

import matplotlib as mpl

import matplotlib.pyplot as plt

np.random.seed(2000)

y = np.random.standard_normal((10, 2))

plt.figure(figsize=(10,5))

plt.subplot(121) #两行一列,第一个图

plt.plot(y[:,0], lw = 1.5,label = '1st')

plt.plot(y[:,0], 'ro')

plt.grid(True)

plt.legend(loc = 0) #图例位置自动

plt.axis('tight')

plt.xlabel('index')

plt.ylabel('value')

plt.title('1st Data Set')

plt.subplot(122)

plt.bar(np.arange(len(y)), y[:,1],width=0.5, color='g',label = '2nc')

plt.grid(True)

plt.legend(loc=0)

plt.axis('tight')

plt.xlabel('index')

plt.title('2nd Data Set')

plt.show()

c.其他绘图样式,散点图,直方图等

1.散点图 scatter

#!/etc/bin/python

#coding=utf-8

import numpy as np

import matplotlib as mpl

import matplotlib.pyplot as plt

np.random.seed(2000)

y = np.random.standard_normal((1000, 2))

plt.figure(figsize=(7,5))

plt.scatter(y[:,0],y[:,1],marker='o')

plt.grid(True)

plt.xlabel('1st')

plt.ylabel('2nd')

plt.title('Scatter Plot')

plt.show()

2.直方图 plt.hist

#!/etc/bin/python

#coding=utf-8

import numpy as np

import matplotlib as mpl

import matplotlib.pyplot as plt

np.random.seed(2000)

y = np.random.standard_normal((1000, 2))

plt.figure(figsize=(7,5))

plt.hist(y,label=['1st','2nd'],bins=25)

plt.grid(True)

plt.xlabel('value')

plt.ylabel('frequency')

plt.title('Histogram')

plt.show()

3.直方图 同一个图中堆叠

#!/etc/bin/python

#coding=utf-8

import numpy as np

import matplotlib as mpl

import matplotlib.pyplot as plt

np.random.seed(2000)

y = np.random.standard_normal((1000, 2))

plt.figure(figsize=(7,5))

plt.hist(y,label=['1st','2nd'],color=['b','g'],stacked=True,bins=20)

plt.grid(True)

plt.xlabel('value')

plt.ylabel('frequency')

plt.title('Histogram')

plt.show()

4.箱型图 boxplot

#!/etc/bin/python

#coding=utf-8

import numpy as np

import matplotlib as mpl

import matplotlib.pyplot as plt

np.random.seed(2000)

y = np.random.standard_normal((1000, 2))

fig, ax = plt.subplots(figsize=(7,4))

plt.boxplot(y)

plt.grid(True)

plt.setp(ax,xticklabels=['1st' , '2nd'])

plt.xlabel('value')

plt.ylabel('frequency')

plt.title('Histogram')

plt.show()

5.绘制函数

from matplotlib.patches import Polygon

import numpy as np

import matplotlib.pyplot as plt

#1. 定义积分函数

def func(x):

return 0.5 * np.exp(x)+1

#2.定义积分区间

a,b = 0.5, 1.5

x = np.linspace(0, 2 )

y = func(x)

#3.绘制函数图形

fig, ax = plt.subplots(figsize=(7,5))

plt.plot(x,y, 'b',linewidth=2)

plt.ylim(ymin=0)

#4.核心, 我们使用Polygon函数生成阴影部分,表示积分面积:

Ix = np.linspace(a,b)

Iy = func(Ix)

verts = [(a,0)] + list(zip(Ix, Iy))+[(b,0)]

poly = Polygon(verts,facecolor='0.7',edgecolor = '0.5')

ax.add_patch(poly)

#5.用plt.text和plt.figtext在图表上添加数学公式和一些坐标轴标签。

plt.text(0.5 *(a+b),1,r"$\int_a^b f(x)\mathrm{d}x$", horizontalalignment ='center',fontsize=20)

plt.figtext(0.9, 0.075,'$x$')

plt.figtext(0.075, 0.9, '$f(x)$')

#6. 分别设置x,y刻度标签的位置。

ax.set_xticks((a,b))

ax.set_xticklabels(('$a$','$b$'))

ax.set_yticks([func(a),func(b)])

ax.set_yticklabels(('$f(a)$','$f(b)$'))

plt.grid(True)

2.金融学图表 matplotlib.finance

1.烛柱图 candlestick

#!/etc/bin/python

#coding=utf-8

import matplotlib.pyplot as plt

import matplotlib.finance as mpf

start = (2014, 5,1)

end = (2014, 7,1)

quotes = mpf.quotes_historical_yahoo('^GDAXI',start,end)

# print quotes[:2]

fig, ax = plt.subplots(figsize=(8,5))

fig.subplots_adjust(bottom = 0.2)

mpf.candlestick(ax, quotes, width=0.6, colorup='b',colordown='r')

plt.grid(True)

ax.xaxis_date() #x轴上的日期

ax.autoscale_view()

plt.setp(plt.gca().get_xticklabels(),rotation=30) #日期倾斜

plt.show()

2. plot_day_summary

该函数提供了一个相当类似的图标类型,使用方法和 candlestick 函数相同,使用类似的参数. 这里开盘价和收盘价不是由彩色矩形表示,而是由两条短水平线表示.

#!/etc/bin/python

#coding=utf-8

import matplotlib.pyplot as plt

import matplotlib.finance as mpf

start = (2014, 5,1)

end = (2014, 7,1)

quotes = mpf.quotes_historical_yahoo('^GDAXI',start,end)

# print quotes[:2]

fig, ax = plt.subplots(figsize=(8,5))

fig.subplots_adjust(bottom = 0.2)

mpf.plot_day_summary(ax, quotes, colorup='b',colordown='r')

plt.grid(True)

ax.xaxis_date() #x轴上的日期

ax.autoscale_view()

plt.setp(plt.gca().get_xticklabels(),rotation=30) #日期倾斜

plt.show()

3.股价数据和成交量

#!/etc/bin/python

#coding=utf-8

import matplotlib.pyplot as plt

import numpy as np

import matplotlib.finance as mpf

start = (2014, 5,1)

end = (2014, 7,1)

quotes = mpf.quotes_historical_yahoo('^GDAXI',start,end)

# print quotes[:2]

quotes = np.array(quotes)

fig, (ax1, ax2) = plt.subplots(2, sharex=True, figsize=(8,6))

mpf.candlestick(ax1, quotes, width=0.6,colorup='b',colordown='r')

ax1.set_title('Yahoo Inc.')

ax1.set_ylabel('index level')

ax1.grid(True)

ax1.xaxis_date()

plt.bar(quotes[:,0] - 0.25, quotes[:, 5], width=0.5)

ax2.set_ylabel('volume')

ax2.grid(True)

ax2.autoscale_view()

plt.setp(plt.gca().get_xticklabels(),rotation=30)

plt.show()

3.3D 绘图

#!/etc/bin/python

#coding=utf-8

import numpy as np

import matplotlib.pyplot as plt

stike = np.linspace(50, 150, 24)

ttm = np.linspace(0.5, 2.5, 24)

stike, ttm = np.meshgrid(stike, ttm)

print stike[:2]

iv = (stike - 100) ** 2 / (100 * stike) /ttm

from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure(figsize=(9,6))

ax = fig.gca(projection='3d')

surf = ax.plot_surface(stike, ttm, iv, rstride=2, cstride=2, cmap=plt.cm.coolwarm, linewidth=0.5, antialiased=True)

ax.set_xlabel('strike')

ax.set_ylabel('time-to-maturity')

ax.set_zlabel('implied volatility')

plt.show()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/560007.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

文件隐藏服务器版本信息,如何隐藏Apache版本号和其他敏感信息

当远程请求发送到您的Apache Web服务器时,默认情况下,一些有价值的信息,如Web服务器版本号,服务器操作系统详细信息,已安装的Apache模块等等,在服务器生成的文档中发送回客户端。这是攻击者利用漏洞并访问您…

微云服务器失败原因_梦幻西游:服务器发生异常?游戏出现明显卡顿感,正在排查问题...

就在刚刚,不少梦幻玩家都在讨论一个情况,那就是服务器出现了明显的卡顿感,一些商人也陆续掉线,难道是服务器出现了异常?退出游戏之后,一直无法进入,登录界面总是停留在"正在连接某某服务器…

maven多模块项目部署到服务器,GitHub - baxias/foweb: 一个基于 Spring+SpringMVC+Mybatis 的Maven多模块项目。(实现前后端分离的服务器端)...

Foweb FrameworkA multi-modules maven project base on SpringSpringMVCMybatis.一个基于 SpringSpringMVCMybatis 的Maven多模块项目。使用文档两种使用方式:1. 直接将项目download下来,然后在IDE(Eclipse或者IDEA)中以maven项目导入,注意这…

python内建函数测试对象身份_Python学习笔记 03 Python对象

1、Python对象Python对象都拥有三个特性:身份、类型和值。身份:每一个对象都有一个唯一的身份标识自己,任何对象的身份都可以使用内建函数id()来得到。这个值可以被认为是该对象的内存地址。类型:对象的类型决定了该对象可以保存什…

ajax中的换行符,jQuery中的换行符ajax html回调导致错误

我从$.ajax调用返回一大块HTML.来自PHP的字符串在开头有两个换行符,例如$data "Here is some text";这是$.ajax调用:$(form#form_id).submit(function(e){e.preventDefault();$form $(this);$.ajax({url: $form.attr(action),type: $form.attr(method),…

网站需要数据库服务器吗,网站需要独立的服务器数据库吗

网站需要独立的服务器数据库吗 内容精选换一换文档数据库服务提供使用数据管理服务(Data Admin Service,简称DAS)、内网和公网的连接方式。文档数据库服务默认为您开通了远程主机登录权限,推荐您使用更安全便捷的数据管理服务连接实例,具体请…

android 获取monkey日志_安卓app测试之Monkey日志分析

转:原文:https://blog.csdn.net/a136332462/article/details/76066909一、一般测试结果分析-搜索关键字:1、无响应问题可以在日志中搜索 “ANR” 。2、崩溃问题搜索 “CRASH” 。3、内存泄露问题搜索"GC"(需进一步分析)。4、异常问题搜索 “Ex…

只提取单元格中的数字_提取Excel单元格中的数字(4类)及原理

文中总结了4类从包含有中文、字母、数字的单元格数据中只提取数字的公式。(使用的时候把单元格名称改为实际的单元格名称即可)。1.提取文本左侧数据当单元格中数字在左侧,文字内容在右侧时,我们可以使用一下公式来将数字快速提取出来。函数公式&#xff…

delphi 执行长时间存储过程 显示进度_项目管理_十大管理体系之「项目进度管理」知识整理及心得分享...

项目进度管理项目进度管理在项目是项目管理三大要素之一,在项目管理中占有非常重要的地位。往往很多项目要求进度节点是一个固定期限,无法修改,所以进度把控就显得尤为重要。什么是进度管理,在你写project项目计划时就非常清楚的可…

bettertouchtool闪退_BetterTouchTool for Mac 3.238 无闪退 触控板增强工具

BetterTouchTool为魔术鼠标添加了许多新的完全可自定义的手势,Multi-Touch MacBook触控板和Magic Trackpad。这些手势是可定制的:魔术鼠标:捏合/缩小(缩放)单指点击左边单指轻拍右键单指中间单指轻拍单指点击中间双指轻敲双指点击双指轻扫(上…

宝塔php扩展fil_宝塔面板安装Redis给WordPress网站加速优化教程

宝塔面板php安装redis缓存以加快WordPress的开启速度,因为WordPress打开速度慢,所以霜天 seo使用多种方式来提高wordpress的加载速度,其中一个好办法是:使用redis加速缓存。本文的主题是宝塔面板php安装redis缓存加速WordPress&am…

常量缓存与integer比较_Integer缓存范围到底是多少?

本文主要大致思路为:不管从工作中还是面试,这篇文章都应该好好看完,本人认为是非常有用的。案例Integer是基本类型int的封装类。平时不管是入坑多年的小伙伴还在入坑路上的小伙伴,都应该知道的使用频率是相当高。下面模仿订单支付…

mysql数据库中删除列的内容_如何在数据库中删除列

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航,为用户…

mysql语句创建临时表并存入数据_mysql实例:在存储过程中创建临时表并储存数据...

在mysql存储过程中创建临时表,并保存数据到该表,然后根据存储过程调用的例子。是学习mysql存储过程的好例子,值得参考。代码:mysql>mysql> CREATE TABLE Employee( //创建普通表-> id int,-> first_name VARCHAR(15),…

虚拟主机安装mysql_如何虚拟主机安装mysql

匿名用户1级2008-10-20 回答在虚拟机上安装mysql的步骤为:1、下载MySQL-5.5.24-1.rhel5.i386.tar在/usr/local 下建立必要文件夹# cd /usr/local# mkdir mysql# cd /usr/local/mysql# mkdir src# mkdir data用xftp将MySQL-5.5.16-1.rhel5.i386.tar 上传到虚拟机src目…

mysql多副本搭建_一个简单的MySQL多实例环境搭建

安装mysql初始化两个数据库目录mysql_install_db --datadir/usr/local/var/mysql1 --usermysqlmysql_install_db --datadir/usr/local/var/mysql2 --usermysql修改数据库目录属性chown -R mysql /usr/local/var/mysql1chown -R mysql /usr/local/var/mysql2制作多实例启动服务c…

supervisor 子进程退出_用supervisor监管你的程序,不用担心程序挂了

1.背景无论多么优秀的程序员都难以避免写出来的程序会有崩溃的一天,特别是c、c这种高技术含量的语言,一不小心就来个段错误(segment fault),我们通常会写一个守护进程或者守护脚本,检测对应的进程是否退出,…

pta7-3 统计不及格人数_应用统计专硕院校专业难度分析【青岛大学、苏大、西安交通大学】...

原文链接:应用统计专硕院校专业难度分析【第十二期】​mp.weixin.qq.com应用统计专硕院校专业难度分析 【第十二期】TO:哈喽,小可爱们早上给你好呀!今天安安姐给你们更新经济类6个专硕院校专业难度分析专题第十二期,大…

mysql数据库事务有几种特性_面试官:你能说说事务的几个特性是啥?有哪几种隔离级别?...

1、面试题事务的几个特点是什么?数据库事务有哪些隔离级别?MySQL的默认隔离级别?2、面试官心里分析用mysql开发的三个基本面:存储引擎、索引,然后就是事务,你必须得用事务。因为一个业务系统里,…