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()

绘图python_Python绘图相关推荐

  1. CREO:CREO软件中如何设置和使用各种标准模板文件(asm组件模板、drw工程图模板、prt零件模板)、零件模板的定制、创建零件自动产生绘图、绘图模板的定制之详细攻略

    CREO:CREO软件中如何设置和使用各种标准模板文件(asm组件模板.drw工程图模板.prt零件模板).零件模板的定制.创建零件自动产生绘图.绘图模板的定制之详细攻略 目录

  2. MATLAB SCI论文绘图及绘图窗口大小设置

    简介 为了满足各种期刊杂志尤其SCI的出版要求,高品质的论文插图能够让读者赏心悦目,增加论文的可阅读性.在作图时候,根据论文的布局.插图位置决定着图的长宽.分辨率和字体大小.如果不考虑图片在论文中的大 ...

  3. EGE绘图之一 绘图讲解

    EGE专栏:EGE专栏 下一篇:EGE绘图之二 窗口刷新 目录 1.1 绘图初始设置 1.2 帧循环 1.2.1 包含动画的程序简略结构 1.3 视觉暂留现象 1.4 清屏 1.4.1 部分清屏 1. ...

  4. 绘图python_Python空间绘图--Cartopy简介

    Python地理信息库包-- Cartopy 一.简介 在前面的教程中,我们已经讲解了常用的二维型数据的可视化方法.但是在日常研究中,由于大气科学属于地学系统,和地球地理信息的结合十分密切,大多数时间 ...

  5. Web 绘图—服务器端绘图

    Web服务器端绘图的基本原理是:首先在内存中创建一个Bitmap位图,然后在此位图上绘制任意想要的图形,绘制完成后保存输出到页面的输出流.这样,一个页面就转换成了绘制的图片. 1.简单图形绘制 新建一 ...

  6. c++win32项目 如何显示后再删除一个绘图_iMATLAB 绘图扩展函数系列 | 让你绘图更自由(进阶专辑开篇)!...

    本专辑参考了mathworks公司主页文件交换站的一些分享文件,遴选部分绘图扩展函数供初学者参考,仅用作学习资料传播,版权属于原作者,特此致谢. 如有不妥,请联系删除. 本专辑将持续更新,欢迎读者投稿 ...

  7. 机器学习(五):初级matplitlib绘图-其他绘图样式和3维绘图

    注(百度百科案例) 使用二维数据集和其他一些数据: 散点图: import numpy as np import matplotlib as mpl import matplotlib.pyplot ...

  8. python 大数据量绘图_Matplotlib绘图遇到时间刻度就犯难?现在,一次性告诉你四种方法...

    点击上方"蓝字"关注我们 Python大数据分析 记录   分享   成长 添加微信号" CNFeffery "加入技术交流群 最近有小伙伴私信我关于matpl ...

  9. 计算机绘图课程绘图模式主要有,关于“计算机绘图”课程教学研究的探索

    成红娟 周文和 李志伟 董昕玥 [摘 要] "计算机绘图"是本专业的学科基础课程,既注重理论学习又具有很强的实践性.根据计算机绘图课程特点.教学现状以及教学中的问题,从优化课程知识 ...

最新文章

  1. 递归下降分析法(编译原理)
  2. 易宝支付碰到 交易签名无效问题
  3. jzoj6067-[NOI2019模拟2019.3.18]More?More!【dp】
  4. 如何方便的让你的集合引发改变事件
  5. Flash--元件和实例
  6. 实战技巧:Python爬取OEM 12C上的告警信息并推送至微信企业号
  7. java输入文件内容_java Io流向指定文件输入内容
  8. 趣学 C 语言(六)—— 结构和联合
  9. 在线编辑Excel——插入图表
  10. 快速:通过画图了解Racket
  11. Junit4 initializationError初始化错误 终于解决了!!!
  12. matlab编写多目标测试函数SCH, ZDT, MOP, DTLZ
  13. 病毒先生:天网恢恢,区块链行业的安全由谁来守护?
  14. QML使用ShaderEffect绘制波纹
  15. php制作404,thinkphp制作404跳转页的简单实现方法
  16. 全球及中国电化学研磨设备行业盈利模式与竞争态势分析报告2022-2028年
  17. 【特征工程】特征工程技术与方法
  18. Postgres忘记密码如何修改密码
  19. 考研英语词汇文章4-Freshman Year
  20. 原生态(PHP和JAVA)研发的文锋网约车APP文锋代驾APP700个功能模块免费开源源码

热门文章

  1. asp.net 操作ftp 通用代码[测试通过]
  2. Android 模拟器调试的缺点
  3. 计算机网络(第四章网络层)
  4. Python通过snmp获取交换机VLAN号、VLAN默认网关、VLAN子网掩码和ARP表中的IP地址与MAC对应记录数据
  5. Android TensorFlow Lite 深度学习识别手写数字mnist demo
  6. JDBC中使用PreparedStatement执行SQL语句并管理结果集
  7. 多多进宝推广团队_多多进宝推广形式及推手寻找、佣金结算方式是怎样的?
  8. 求年龄和的c语言数据类型,第1章 c语言与数据类型.ppt
  9. linux+基因组字符替换,liftover基因组版本直接的coordinate转换
  10. 查看 rabbitmq 启动websocket 提示404_RabbitMQ 部署记录