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

202008040837051.png

202008040837052.png

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

202008040837053.png

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

202008040837064.png

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

202008040837065.png

b. 二维数据集

np.random.seed(2000)

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

print y

202008040837066.png

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

202008040837067.png

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

202008040837068.png

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

202008040837069.png

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

2020080408370610.png

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

2020080408370611.png

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

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

2020080408370612.png

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

2020080408370613.png

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

2020080408370714.png

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

2020080408370715.png

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)

2020080408370716.png

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

2020080408370717.png

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

2020080408370718.png

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

2020080408370719.png

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

2020080408370720.png

到此这篇关于Python绘图之二维图与三维图详解的文章就介绍到这了,更多相关Python绘图内容请搜索python博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持python博客!

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

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

相关文章

Windows10配置CUDA10.0+cudnn7.5.1

1、安装CUDA10.0 (1)下载:https://developer.nvidia.com/cuda-10.0-download-archive?target_osWindows&target_archx86_64&target_version10&target_typeexelocal 双击安装包进行安装,路径全部默认不做修改 &#…

金蝶云系统服务器,金蝶系统云服务器已离线

金蝶系统云服务器已离线 内容精选换一换本节操作介绍在Windows和Linux环境中使用SSH密码方式远程登录Linux云耀云服务器的操作步骤。云耀云服务器状态为“运行中”。云耀云服务器已经绑定弹性公网IP。所在安全组入方向已开放22端口,配置方式请参见配置安全组规则。使…

python 并列条形图_python – 来自两个pandas数据框的分组条形图

我有两个包含不同值但结构相同的数据框: df1 0 1 2 3 4 D 0.003073 0.014888 0.155815 0.826224 NaN E 0.000568 0.000435 0.000967 0.002956 0.067249 df2 0 1 2 3 4 D 0.746689 0.185769 0.060107 0.007435 NaN E 0.764552 0.000000 0.070288 0.101148 0.053499…

径向基神经网络_谷歌开源Neural Tangents:5行代码打造无限宽神经网络模型,帮助“打开ML黑匣子”...

鱼羊 假装发自 凹非寺量子位 报道 | 公众号 QbitAI只要网络足够宽,深度学习动态就能大大简化,并且更易于理解。最近的许多研究结果表明,无限宽度的DNN会收敛成一类更为简单的模型,称为高斯过程(Gaussian processes&…

佳能g2800清零软件天空_可能是史上最有趣的3D建模软件

今天咱们要讲的不是一款BIM软件,而是一款有趣的3D体素建模软件。体素英文名叫Voxel,是把像素风格中的小方块引申到三维空间里,让图像呈现一小块一小块的鲜明风格。比如《我的世界》和最近非常火的《纪念碑谷2》就是这样的风格。这款软件叫做M…

springcloud feign 服务调用其他服务_微服务实战——SpringCloud与Feign集成

上一篇集成了ZuulGateway和Eureka并进行了测试。在实际场景中,我们肯定会有很多的微服务,而他们之间可能会存在相互调用的关系,那么,如何优雅的处理服务之间的调用问题呢?接下来就是我们要解决的。简单的说下FeignFeig…

Python中赋值,深拷贝和浅拷贝

1python变量 变量的存储,采用了引用语义的方式,存储的只是一个变量的值所在的内存地址,而不是这个变量的值本身。 2赋值 python变量赋值实际上是对象的引用。 如: list_a [1,2,3,"hello",["python",&qu…

excel进度条与百分比不符_Excel项目管理模板V2.0

Excel表哥公众号推送的第一篇文章 如何用Excel制作一个高逼格的项目管理模板 累积获得了超多的下载量。下面是和读者朋友的一些交流互动:在使用过程中大家陆续也反馈了一些问题和建议。因此我们推出了项目管理模板V2.0 升级版!算作是给读者朋友们的一个答…

python 格式化输出%和format

1 %用法 1.1整数的输出 %o —— oct 八进制 %d —— dec 十进制 %x —— hex 十六进制 print(%o % 20) #24 print(%d % 20) #20 print(%x % 20) #141.2浮点数输出 %f ——默认保留小数点后面六位有效数字   %.3f,保留3位小数位 %e ——默认保留小数点后面六…

linux系统中安装python_2. Linux 下安装python

Linux 各个版本的系统都自带python解释器,可以在shell界面输入 python 就能进入交互界面,并显示python版本信息; 现在最流行的版本是python2.7,Centos6 默认安装2.6.6的版本,Centos7 默认安装2.7.* 的版本。 如果Cento…

访问修饰符作用范围由大到小是_9个java基础小知识

一、面向对象和面向过程的区别1. 面向过程 : 面向过程性能比面向对象高。因为类调用时需要实例化,开销比较大,比较消耗资源,所以当性能是最重要的考虑因素时(例如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发…

白盒测试用例设计方法(语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖、路径覆盖、基本路径覆盖)

语句覆盖:每条语句至少执行一次。 判定覆盖:每个判定的所有可能结果至少出现一次。(又称“分支覆盖”) 条件覆盖:每个条件的所有可能结果至少执行一次。 判定/条件覆盖:一个判定中的每个条件的所有可能结果…

Python之列表和元组

01 序列 成员有序排列的,且可以通过下标偏移量访问到它的一个或者几个成员,这类类型统称为序列 序列数据类型包括:字符串,列表,和元组类型。 特点: 都支持下面的特性 索引与切片操作符 成员关系操作符(in , not in) 连接操作符() & 重复操作符(*) 0…

webgl编程指南源码_ThreeJS 源码剖析之 Renderer(一)

引子?最近,忽然想起曾在 WebGL 基础系列 文章中立下 flag:“后续还打算出 《ThreeJS 源码剖析》 系列”(特意翻出原话?),项目忙了一阵后,便决定开始写此系列,更新周期不固定,毕竟项目排期“天晓得”。此系…

python之集合与字典

01 一山不容二虎的集合 1.通俗来说,集合(set)是一个无序的不重复元素序列,就是一个用来存放数据的容器。 1)集合里面的元素是不可重复的: 如: s {1,2,3,4,1,2,3} print(s,type(s)) # 输出结…

opencv roberts算子_边缘检测 Roberts算子

Roberts算子是一种最简单的算子,利用局部差分算子寻找边缘的算子。采用对角线相邻两像素之差近似梯度幅值检测边缘。。检测垂直边缘的效果比斜向边缘要好,定位精度高,对噪声比较敏感,无法抑制噪声的影响。Roberts边缘算子是一个2x…

74ls90设计十进制计数器电路图_PLC控制系统的设计与调试步骤你知多少?

作为电气工程技术人员我们在平时工作中常常要对PLC控制系统进行设计与调试,下面给各位朋友分享一下PLC控制系统的设计与调试步骤。PLC控制系统的设计与调试过程是这样的;第一点需要我们深入了解被控制系统。我们在设计前应该熟悉图样资料,并深…

python硬件_「大神器!」硬件的AI性能测试Python库发布

目前人工智能技术发展速度很快,也很吸引眼球。但是对于各种多如牛毛的方法,目前并米有一个可靠的精准的基准来衡量各项硬件在不同算法训练和推理的性能。现在,不用愁了。国外的一个哥们, Andrey Ignatov发布了一个python库。大家可…

python之异常处理

关于错误和异常 (1)概念:错误是无法通过其他代码进行处理问题,如语法错误和逻辑错误,语法错误是单词或格式等写错,只能根据系统提示去修改相应的代码,逻辑错误是代码实现功能的逻辑有问题&…

什么是python标识符_Python:标识符Identifier

什么是标识符? 标识符 (ldentifier) :是一个用来标识变量、函数、类、模块或其他对象的名称。 标识符规范 1)标识符由字母、下划线和数字组成 2)不能以数字开头 3)区分大小写 4)不能使用关键字 命名规则 1、见名知意。…