前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python学习之matplot

python学习之matplot

作者头像
py3study
发布2020-01-08 18:01:14
6730
发布2020-01-08 18:01:14
举报
文章被收录于专栏:python3python3

import matplotlib.pyplot as plt import numpy as np import pandas as pd from mpl_toolkits.mplot3d import Axes3D import matplotlib.gridspec as gridspec from matplotlib import animation

#Matplot的基本应用

x = np.linspace(-1,1,50)#定义x的数据范围

y1 = 2*x + 1#定义y的数据范围

y2 = x**2

plt.figure()#定义一个图像窗口

plt.plot(x,y1)#plt花出曲线

plt.plot(x,y2)

plt.show()#显示图像

#4.1figure图像

x = np.linspace(-3,3,50)#50为生成的样本数

y1 = 2*x+1

y2 = x**2

plt.figure(num=1,figsize=(8,5))#定义编号为1 大小为(8,5)

plt.plot(x,y1,color = 'red',linewidth= 2, linestyle = '--' )#定义颜色,线宽,先算形状

plt.plot(x,y2,color = 'blue')

plt.show()

#4.2 设置坐标轴

x = np.linspace(-3,3,50)#50为生成的样本数

y1 = 2*x+1

y2 = x**2

plt.figure(num=1,figsize=(8,5))#定义编号为1 大小为(8,5)

plt.plot(x,y1,color = 'red',linewidth= 2, linestyle = '--' )#定义颜色,线宽,先算形状

plt.plot(x,y2,color = 'blue')

plt.xlim(-1,2)

plt.ylim(-2,3)

plt.xlabel('x')

plt.ylabel('y')

plt.show()

#自定义坐标轴

x = np.linspace(-3,3,50)#50为生成的样本数

y1 = 2*x+1

y2 = x**2

plt.figure(num=1,figsize=(8,5))#定义编号为1 大小为(8,5)

plt.plot(x,y1,color = 'red',linewidth= 2, linestyle = '--' )#定义颜色,线宽,先算形状

plt.plot(x,y2,color = 'blue')

plt.xlim(-1,2)

plt.ylim(-2,3)

plt.xlabel('x')

plt.ylabel('y')

new_ticks = np.linspace(-1,2,5)#小标从1到2分为5个单位

print(new_ticks)

plt.xticks(new_ticks)#进行替换新下标

plt.yticks([-2,-1,1,2],[r'$reallybad$','$bad$','$well$','$reallywell$'])

plt.show()

#设置边框属性

x = np.linspace(-3,3,50)

y1 = 2*x+1

y2 = x**2

plt.figure(num=2,figsize=(8,5))

plt.plot(x,y1,color='red',linewidth = 2,linestyle = '--')

plt.plot(x,y2)

plt.xlim(-1,2)

plt.ylim(-2,3)

new_ticks = np.linspace(-1,2,5)#小标从-1到2分为5各个单位

plt.xticks(new_ticks)

plt.yticks([-2,-1,1,2],[r'$1$','$2$','$3$','$4$'])

ax = plt.gca()#gca = get current axis

ax.spines['right'].set_color('none')#边框属性设置为none 不显示

ax.spines['top'].set_color('none')

plt.show()

#调整移动坐标 #

x = np.linspace(-3,3,50)

y1 = 2*x+1

y2 = x**2

plt.figure(num=2,figsize=(8,5))

plt.plot(x,y1,color='red',linewidth = 2,linestyle = '--')

plt.plot(x,y2)

plt.xlim(-1,2)

plt.ylim(-2,3)

new_ticks = np.linspace(-1,2,5)#小标从-1到2分为5各个单位

plt.xticks(new_ticks)

plt.yticks([-2,-1,1,2],[r'$1$','$2$','$3$','$4$'])

ax = plt.gca()#gca = get current axis

ax.spines['right'].set_color('none')#边框属性设置为none 不显示

ax.spines['top'].set_color('none')

ax.xaxis.set_ticks_position('bottom')#使用此函数设置x坐标刻度数字或名称的位置

ax.spines['bottom'].set_position(('data',0))

ax.yaxis.set_ticks_position('left')

ax.spines['left'].set_position(('data',0))#坐标中心设置在(0,0)

plt.show()

#添加图例 #

x = np.linspace(-3,3,50)

y1 = 2*x+1

y2 = x**2

plt.figure(num=2,figsize=(8,5))

plt.xlim(-1,2)

plt.ylim(-2,3)

new_ticks = np.linspace(-1,2,5)#小标从-1到2分为5各个单位

plt.xticks(new_ticks)

plt.yticks([-2,-1,1,2],[r'$1$','$2$','$3$','$4$'])

l1 = plt.plot(x,y1,color = 'red',label = 'linear line')

l2 = plt.plot(x,y2,label = 'square line')

plt.legend(loc = 'best')

plt.show()

#添加标注

x = np.linspace(-3,3,50)

y = 2*x + 1

plt.figure(num=1,figsize=(8,5))

plt.plot(x,y)

#

ax = plt.gca()

ax.spines['right'].set_color('none')

ax.spines['top'].set_color('none')

ax.xaxis.set_ticks_position('bottom')

ax.spines['bottom'].set_position(('data',0))

ax.yaxis.set_ticks_position('left')

ax.spines['left'].set_position(('data',0))

#

x0 = 1

y0 = 2*x0+1

plt.scatter(x0,y0,s=1000,color='b')

plt.plot([x0,x0],[y0,0],'k--',lw = 2.5)#连接该两点,k表示黑色,lw=2.5表示线粗细

plt.annotate(r'$2x0+1=%s$'%y0,xy=(x0,y0),xycoords ='data' ,xytext = (+30,-30),textcoords = 'offset points',fontsize = 16,arrowprops = dict(arrowstyle='->',connectionstyle = 'arc3,rad =.3'))

xycoords ='data' 是基于数据的值来选择位置;xytext = (+30,-30)和textcoord = 'offset points'对于标注位置描述和xy偏差值,arrowprops对于图中间头类型设置

plt.text(-3.7,3,r'$This\ is\ the\ some\ text. \mu\ \sigma_i\alpha_t$',fontdict={'size': 16,'color':'r'})

-3.7,3设置文字位置;fontdict设置文字的字体

plt.show()

#4,5 能见度调整

x = np.linspace(-3,3,50)

y = 0.1*x

plt.figure()

plt.plot(x,y,linewidth = 10,zorder = 1)

plt.ylim(-2,2)

#

ax = plt.gca()

ax.spines['right'].set_color('none')

ax.spines['top'].set_color('none')

ax.xaxis.set_ticks_position('bottom')

ax.spines['bottom'].set_position(('data',0))

ax.yaxis.set_ticks_position('left')

ax.spines['left'].set_position(('data',0))

label.set_fontsize(12)重新调整字体大小 bbox设置目的内容的透明度相关参数 edgecolor设置边框

alpha设置透明度 zoeder设置图层顺序

#

for label in ax.get_xticklabels() + ax.get_yticklabels():

label.set_fontsize(12)

label.set_bbox(dict(facecolor='red',edgecolor = 'None',alpha = 0.7,zorder=2))

#

plt.show()

#5.画图种类 #5.1Scatter散点图

n = 1024

x = np.random.normal(0,1,n)#每一个点的x值

y = np.random.normal(0,1,n)#每一个点的y值

T = np.arctan2(y,x)#返回给定的xy值的反正切值

plt.scatter(x,y,s =75,c=T,alpha= 0.5)#size为75,颜色为T,透明度为50%,利用xticks函数来隐藏坐标轴

plt.xlim(-1.5,1.5)

plt.xticks(())#忽略xticks

plt.ylim(-1.5,1.5)

plt.ylim(-1.5,1.5)

plt.show()

#numpy.random.normal(loc=0.0, scale=1.0, size=None) #loc均值 scale方差 size 输出值的个数

#条形图 #基本图形

n = 12

x = np.arange(n)

y1 = (1-x/float(n))*np.random.uniform(0.5,1,n)#均匀分布

y2 = (1-x/float(n))*np.random.uniform(0.5,1,n)

plt.bar(x,+y1,facecolor = '#9999ff',edgecolor = 'white')

plt.bar(x,-y2,facecolor = '#ff9999',edgecolor = 'white')

#

标记值

for x,y in zip(x,y1): #打包两个元组的值

plt.text(x+0.2,y+0.2,'%.2f'%y,ha = 'center',va='bottom')

ha表示横向对其,bottom表示向下对其

x = np.arange(n)#好舒服啊

for x,y in zip(x,y2):

plt.text(x+0.2,-y-0.2,'%.2f'%y,ha='center',va='top')

#

plt.xlim(-0.5,n)

plt.ylim(-1.25,1.25)

plt.show()

#5.3等高线图

n = 256

x = np.linspace(-3,3,n)

y = np.linspace(-3,3,n)

x,y = np.meshgrid(x,y)#坐标向量返回坐标矩阵

def f(x,y):

return (1 - x / 2 + x 5 + y3)*np.exp(-x2 - y 2)

plt.contourf(x,y,f(x,y),8,alpha = 0.75,cmap = plt.cm.hot)

8标示等高线成分 alpha表示透明度 cmap表示color map

使用contour函数进行等高线绘制 参数依次为x,y,f(x,y),颜色选择黑色,线条宽度为0.5

c = plt.contour(x,y,f(x,y),8,colors = 'black',linewidth = 0.5)

plt.clabel添加等高值 inline控制是否将label画在线里,字体大小为10

plt.clabel(c,inline = True,fontsize = 10)

plt.show()

#5.4 Image图片

a = np.array(np.linspace(0,1,9)).reshape(3,3)

print(a)

plt.imshow(a,interpolation = 'nearest',cmap = 'bone',origin = 'lower')

origin代表选择原点位置

plt.colorbar(shrink = .92) #shrink将图片长度变为原来的92%

plt.show()

#5.5 3D图像

fig = plt.figure()#定义图像窗口

ax = Axes3D(fig)#在窗口上添加3D坐标

将xy值编织成栅格

x = np.arange(-4,4,0.25)

y = np.arange(-4,4,0.25)

# #

x,y = np.meshgrid(x,y)

#

r = np.sqrt(x2+y2)

z = np.sin(r)#高度值

将colormap rain bow填充颜色,之后将三维图像投影到xy平面做等高线图,其中rstride和cstride表示row和column的宽度

ax.plot_surface(x,y,z,rstride=1,cstride=1,cmap=plt.get_cmap('rainbow'))

添加xy平面等高线 投影到z平面

ax.contourf(x,y,z,zdir='z',offset=-2,cmap = plt.get_cmap('rainbow'))#把图像进行投影的图形 offset表示比0底两个位置

ax.set_zlim(-2,2)

plt.show()

#多图合并显示 #6.1 Subplot多合一显示 #6.1 subplot多合一显示 #均匀图中图

plt.figure()

plt.subplot(2,2,1)#表示整个图像分割成2行两列,当前位置为1

plt.plot([0,1],[0,1])

plt.subplot(2,2,2)

plt.plot([0,1],[0,2])

plt.subplot(2,2,3)

plt.plot([0,1],[0,3])

plt.subplot(2,2,4)

plt.plot([0,1],[0,4])

plt.show()

不均匀图中图

plt.figure()

plt.subplot(2,1,1)#表示整个图像分割成2行两列,当前位置为1

plt.plot([0,1],[0,1])

plt.subplot(2,3,4)

plt.plot([0,1],[0,2])

plt.subplot(2,3,5)

plt.plot([0,1],[0,3])

plt.subplot(2,3,6)

plt.plot([0,1],[0,4])

plt.show()

#6.2 subplot分格显示

plt.figure()

使用plt.subplot2grid创建第一个小图,(3,3)表示将整个图像分割成3行3列,(0,0)表示从第0行0列开始作图

colspan表示列的跨度为3.colspan和rowspan缺省时默认跨度为1

ax1 = plt.subplot2grid((3,3),(0,0),colspan=3)

ax1.plot([1,2],[1,2])

ax1.set_title('ax1_title')

将图像分割成3行3列,从第一行0列开始做图,列的跨度为2

ax2 = plt.subplot2grid((3,3),(1,0),colspan=2)

ax3 = plt.subplot2grid((3,3),(1,2),rowspan=2)

ax4 = plt.subplot2grid((3,3),(2,0))

ax4.scatter([1,2],[2,2])

ax4.set_xlabel('ax4_x')

ax4.set_ylabel('ax4_y')

ax5 = plt.subplot2grid((3,3),(2,1))

plt.show()

plt.figure()

gs = gridspec.GridSpec(3,3)

ax6 = plt.subplot(gs[0,:])#gs[0:1]表示占第0行和所有列

ax7 = plt.subplot(gs[1,:2])#第一行和之前的所有

ax10 = plt.subplot(gs[1:,2])

ax8 = plt.subplot(gs[-1,0])

ax9 = plt.subplot(gs[-1,-2])

plt.show()

#图中图

fig = plt.figure()

创建数据

x = [1,2,3,4,5,6,7]

y = [1,3,4,2,5,8,6]

绘制大图:假设大图的1大小为10,那么大图包含在由(1,1)开始,宽8高8的坐标系中

left,bottom,width,height = 0.1,0.1,0.8,0.8

ax1 = fig.add_axes([left,bottom,width,height]) #main axes

ax1.plot(x,y,'r')#绘制大图,颜色为red

ax1.set_xlabel('x')

ax1.set_ylabel('y')

ax1.set_title('title')

绘制小图,注意坐标系位置和大小的改变

ax2 = fig.add_axes([0.2,0.6,0.25,0.25])

ax2.plot(x,y,'b')#颜色为blue

ax2.set_xlabel('x')

ax2.set_ylabel('y')

ax2.set_title('= = = = = ')

#

ax3 = fig.add_axes([0.6,0.2,0.25,0.25])

ax3.plot(x,y,'g')#颜色为blue

ax3.set_xlabel('x')

ax3.set_ylabel('y')

ax3.set_title('++++++++')

#6.4次坐标轴

x = np.arange(0,10,0.1)

y1 = 0.5*x**2

y2 = -1*y1

fig,ax1 = plt.subplots()

#

ax2 = ax1.twinx()#镜像显示

ax1.plot(x,y1,'g-')

ax2.plot(x,y2,'b-')

#

ax1.set_xlabel('x data')

ax1.set_ylabel('y1 data',color = 'g')

ax2.set_ylabel('y2 data',color = 'b')

plt.show()

#7动画

fig,ax = plt.subplots() x = np.arange(0,2*np.pi,0.01) line = ax.plot(x,np.sin(x)) #构造自定义动画函数animate,用来更新每一帧上x和y的坐标值,参数表示第i针 def animate(i): line.set_ydata(np.sin(x+i/100)) return line #构造开始帧init函数 def init(): line.set_ydata(np.sin(x)) return line

ani = animation.FuncAnimation(fig=fig,func = animate,frames=200,init_func=init,interval = 20 ,blit = False) plt.show()

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • x = np.linspace(-1,1,50)#定义x的数据范围
  • y1 = 2*x + 1#定义y的数据范围
  • y2 = x**2
  • plt.figure()#定义一个图像窗口
  • plt.plot(x,y1)#plt花出曲线
  • plt.plot(x,y2)
  • plt.show()#显示图像
  • x = np.linspace(-3,3,50)#50为生成的样本数
  • y1 = 2*x+1
  • y2 = x**2
  • plt.figure(num=1,figsize=(8,5))#定义编号为1 大小为(8,5)
  • plt.plot(x,y1,color = 'red',linewidth= 2, linestyle = '--' )#定义颜色,线宽,先算形状
  • plt.plot(x,y2,color = 'blue')
  • plt.show()
  • x = np.linspace(-3,3,50)#50为生成的样本数
  • y1 = 2*x+1
  • y2 = x**2
  • plt.figure(num=1,figsize=(8,5))#定义编号为1 大小为(8,5)
  • plt.plot(x,y1,color = 'red',linewidth= 2, linestyle = '--' )#定义颜色,线宽,先算形状
  • plt.plot(x,y2,color = 'blue')
  • plt.xlim(-1,2)
  • plt.ylim(-2,3)
  • plt.xlabel('x')
  • plt.ylabel('y')
  • plt.show()
  • x = np.linspace(-3,3,50)#50为生成的样本数
  • y1 = 2*x+1
  • y2 = x**2
  • plt.figure(num=1,figsize=(8,5))#定义编号为1 大小为(8,5)
  • plt.plot(x,y1,color = 'red',linewidth= 2, linestyle = '--' )#定义颜色,线宽,先算形状
  • plt.plot(x,y2,color = 'blue')
  • plt.xlim(-1,2)
  • plt.ylim(-2,3)
  • plt.xlabel('x')
  • plt.ylabel('y')
  • new_ticks = np.linspace(-1,2,5)#小标从1到2分为5个单位
  • print(new_ticks)
  • plt.xticks(new_ticks)#进行替换新下标
  • plt.yticks([-2,-1,1,2],[r'$reallybad$','$bad$','$well$','$reallywell$'])
  • plt.show()
  • x = np.linspace(-3,3,50)
  • y1 = 2*x+1
  • y2 = x**2
  • plt.figure(num=2,figsize=(8,5))
  • plt.plot(x,y1,color='red',linewidth = 2,linestyle = '--')
  • plt.plot(x,y2)
  • plt.xlim(-1,2)
  • plt.ylim(-2,3)
  • new_ticks = np.linspace(-1,2,5)#小标从-1到2分为5各个单位
  • plt.xticks(new_ticks)
  • plt.yticks([-2,-1,1,2],[r'$1$','$2$','$3$','$4$'])
  • ax = plt.gca()#gca = get current axis
  • ax.spines['right'].set_color('none')#边框属性设置为none 不显示
  • ax.spines['top'].set_color('none')
  • plt.show()
  • x = np.linspace(-3,3,50)
  • y1 = 2*x+1
  • y2 = x**2
  • plt.figure(num=2,figsize=(8,5))
  • plt.plot(x,y1,color='red',linewidth = 2,linestyle = '--')
  • plt.plot(x,y2)
  • plt.xlim(-1,2)
  • plt.ylim(-2,3)
  • new_ticks = np.linspace(-1,2,5)#小标从-1到2分为5各个单位
  • plt.xticks(new_ticks)
  • plt.yticks([-2,-1,1,2],[r'$1$','$2$','$3$','$4$'])
  • ax = plt.gca()#gca = get current axis
  • ax.spines['right'].set_color('none')#边框属性设置为none 不显示
  • ax.spines['top'].set_color('none')
  • ax.xaxis.set_ticks_position('bottom')#使用此函数设置x坐标刻度数字或名称的位置
  • ax.spines['bottom'].set_position(('data',0))
  • ax.yaxis.set_ticks_position('left')
  • ax.spines['left'].set_position(('data',0))#坐标中心设置在(0,0)
  • plt.show()
  • x = np.linspace(-3,3,50)
  • y1 = 2*x+1
  • y2 = x**2
  • plt.figure(num=2,figsize=(8,5))
  • plt.xlim(-1,2)
  • plt.ylim(-2,3)
  • new_ticks = np.linspace(-1,2,5)#小标从-1到2分为5各个单位
  • plt.xticks(new_ticks)
  • plt.yticks([-2,-1,1,2],[r'$1$','$2$','$3$','$4$'])
  • l1 = plt.plot(x,y1,color = 'red',label = 'linear line')
  • l2 = plt.plot(x,y2,label = 'square line')
  • plt.legend(loc = 'best')
  • plt.show()
  • x = np.linspace(-3,3,50)
  • y = 2*x + 1
  • plt.figure(num=1,figsize=(8,5))
  • plt.plot(x,y)
  • ax = plt.gca()
  • ax.spines['right'].set_color('none')
  • ax.spines['top'].set_color('none')
  • ax.xaxis.set_ticks_position('bottom')
  • ax.spines['bottom'].set_position(('data',0))
  • ax.yaxis.set_ticks_position('left')
  • ax.spines['left'].set_position(('data',0))
  • x0 = 1
  • y0 = 2*x0+1
  • plt.scatter(x0,y0,s=1000,color='b')
  • plt.plot([x0,x0],[y0,0],'k--',lw = 2.5)#连接该两点,k表示黑色,lw=2.5表示线粗细
  • plt.annotate(r'$2x0+1=%s$'%y0,xy=(x0,y0),xycoords ='data' ,xytext = (+30,-30),textcoords = 'offset points',fontsize = 16,arrowprops = dict(arrowstyle='->',connectionstyle = 'arc3,rad =.3'))
  • xycoords ='data' 是基于数据的值来选择位置;xytext = (+30,-30)和textcoord = 'offset points'对于标注位置描述和xy偏差值,arrowprops对于图中间头类型设置
  • plt.text(-3.7,3,r'$This\ is\ the\ some\ text. \mu\ \sigma_i\alpha_t$',fontdict={'size': 16,'color':'r'})
  • -3.7,3设置文字位置;fontdict设置文字的字体
  • plt.show()
  • x = np.linspace(-3,3,50)
  • y = 0.1*x
  • plt.figure()
  • plt.plot(x,y,linewidth = 10,zorder = 1)
  • plt.ylim(-2,2)
  • ax = plt.gca()
  • ax.spines['right'].set_color('none')
  • ax.spines['top'].set_color('none')
  • ax.xaxis.set_ticks_position('bottom')
  • ax.spines['bottom'].set_position(('data',0))
  • ax.yaxis.set_ticks_position('left')
  • ax.spines['left'].set_position(('data',0))
  • label.set_fontsize(12)重新调整字体大小 bbox设置目的内容的透明度相关参数 edgecolor设置边框
  • alpha设置透明度 zoeder设置图层顺序
  • for label in ax.get_xticklabels() + ax.get_yticklabels():
  • label.set_fontsize(12)
  • label.set_bbox(dict(facecolor='red',edgecolor = 'None',alpha = 0.7,zorder=2))
  • plt.show()
  • n = 1024
  • x = np.random.normal(0,1,n)#每一个点的x值
  • y = np.random.normal(0,1,n)#每一个点的y值
  • T = np.arctan2(y,x)#返回给定的xy值的反正切值
  • plt.scatter(x,y,s =75,c=T,alpha= 0.5)#size为75,颜色为T,透明度为50%,利用xticks函数来隐藏坐标轴
  • plt.xlim(-1.5,1.5)
  • plt.xticks(())#忽略xticks
  • plt.ylim(-1.5,1.5)
  • plt.ylim(-1.5,1.5)
  • plt.show()
  • n = 12
  • x = np.arange(n)
  • y1 = (1-x/float(n))*np.random.uniform(0.5,1,n)#均匀分布
  • y2 = (1-x/float(n))*np.random.uniform(0.5,1,n)
  • plt.bar(x,+y1,facecolor = '#9999ff',edgecolor = 'white')
  • plt.bar(x,-y2,facecolor = '#ff9999',edgecolor = 'white')
  • 标记值
  • for x,y in zip(x,y1): #打包两个元组的值
  • plt.text(x+0.2,y+0.2,'%.2f'%y,ha = 'center',va='bottom')
  • ha表示横向对其,bottom表示向下对其
  • x = np.arange(n)#好舒服啊
  • for x,y in zip(x,y2):
  • plt.text(x+0.2,-y-0.2,'%.2f'%y,ha='center',va='top')
  • plt.xlim(-0.5,n)
  • plt.ylim(-1.25,1.25)
  • plt.show()
  • n = 256
  • x = np.linspace(-3,3,n)
  • y = np.linspace(-3,3,n)
  • x,y = np.meshgrid(x,y)#坐标向量返回坐标矩阵
  • def f(x,y):
  • return (1 - x / 2 + x 5 + y3)*np.exp(-x2 - y 2)
  • plt.contourf(x,y,f(x,y),8,alpha = 0.75,cmap = plt.cm.hot)
  • 8标示等高线成分 alpha表示透明度 cmap表示color map
  • 使用contour函数进行等高线绘制 参数依次为x,y,f(x,y),颜色选择黑色,线条宽度为0.5
  • c = plt.contour(x,y,f(x,y),8,colors = 'black',linewidth = 0.5)
  • plt.clabel添加等高值 inline控制是否将label画在线里,字体大小为10
  • plt.clabel(c,inline = True,fontsize = 10)
  • plt.show()
  • a = np.array(np.linspace(0,1,9)).reshape(3,3)
  • print(a)
  • plt.imshow(a,interpolation = 'nearest',cmap = 'bone',origin = 'lower')
  • origin代表选择原点位置
  • plt.colorbar(shrink = .92) #shrink将图片长度变为原来的92%
  • plt.show()
  • fig = plt.figure()#定义图像窗口
  • ax = Axes3D(fig)#在窗口上添加3D坐标
  • 将xy值编织成栅格
  • x = np.arange(-4,4,0.25)
  • y = np.arange(-4,4,0.25)
  • x,y = np.meshgrid(x,y)
  • r = np.sqrt(x2+y2)
  • z = np.sin(r)#高度值
  • 将colormap rain bow填充颜色,之后将三维图像投影到xy平面做等高线图,其中rstride和cstride表示row和column的宽度
  • ax.plot_surface(x,y,z,rstride=1,cstride=1,cmap=plt.get_cmap('rainbow'))
  • 添加xy平面等高线 投影到z平面
  • ax.contourf(x,y,z,zdir='z',offset=-2,cmap = plt.get_cmap('rainbow'))#把图像进行投影的图形 offset表示比0底两个位置
  • ax.set_zlim(-2,2)
  • plt.show()
  • plt.figure()
  • plt.subplot(2,2,1)#表示整个图像分割成2行两列,当前位置为1
  • plt.plot([0,1],[0,1])
  • plt.subplot(2,2,2)
  • plt.plot([0,1],[0,2])
  • plt.subplot(2,2,3)
  • plt.plot([0,1],[0,3])
  • plt.subplot(2,2,4)
  • plt.plot([0,1],[0,4])
  • plt.show()
  • 不均匀图中图
  • plt.figure()
  • plt.subplot(2,1,1)#表示整个图像分割成2行两列,当前位置为1
  • plt.plot([0,1],[0,1])
  • plt.subplot(2,3,4)
  • plt.plot([0,1],[0,2])
  • plt.subplot(2,3,5)
  • plt.plot([0,1],[0,3])
  • plt.subplot(2,3,6)
  • plt.plot([0,1],[0,4])
  • plt.show()
  • plt.figure()
  • 使用plt.subplot2grid创建第一个小图,(3,3)表示将整个图像分割成3行3列,(0,0)表示从第0行0列开始作图
  • colspan表示列的跨度为3.colspan和rowspan缺省时默认跨度为1
  • ax1 = plt.subplot2grid((3,3),(0,0),colspan=3)
  • ax1.plot([1,2],[1,2])
  • ax1.set_title('ax1_title')
  • 将图像分割成3行3列,从第一行0列开始做图,列的跨度为2
  • ax2 = plt.subplot2grid((3,3),(1,0),colspan=2)
  • ax3 = plt.subplot2grid((3,3),(1,2),rowspan=2)
  • ax4 = plt.subplot2grid((3,3),(2,0))
  • ax4.scatter([1,2],[2,2])
  • ax4.set_xlabel('ax4_x')
  • ax4.set_ylabel('ax4_y')
  • ax5 = plt.subplot2grid((3,3),(2,1))
  • plt.show()
  • plt.figure()
  • gs = gridspec.GridSpec(3,3)
  • ax6 = plt.subplot(gs[0,:])#gs[0:1]表示占第0行和所有列
  • ax7 = plt.subplot(gs[1,:2])#第一行和之前的所有
  • ax10 = plt.subplot(gs[1:,2])
  • ax8 = plt.subplot(gs[-1,0])
  • ax9 = plt.subplot(gs[-1,-2])
  • plt.show()
  • fig = plt.figure()
  • 创建数据
  • x = [1,2,3,4,5,6,7]
  • y = [1,3,4,2,5,8,6]
  • 绘制大图:假设大图的1大小为10,那么大图包含在由(1,1)开始,宽8高8的坐标系中
  • left,bottom,width,height = 0.1,0.1,0.8,0.8
  • ax1 = fig.add_axes([left,bottom,width,height]) #main axes
  • ax1.plot(x,y,'r')#绘制大图,颜色为red
  • ax1.set_xlabel('x')
  • ax1.set_ylabel('y')
  • ax1.set_title('title')
  • 绘制小图,注意坐标系位置和大小的改变
  • ax2 = fig.add_axes([0.2,0.6,0.25,0.25])
  • ax2.plot(x,y,'b')#颜色为blue
  • ax2.set_xlabel('x')
  • ax2.set_ylabel('y')
  • ax2.set_title('= = = = = ')
  • ax3 = fig.add_axes([0.6,0.2,0.25,0.25])
  • ax3.plot(x,y,'g')#颜色为blue
  • ax3.set_xlabel('x')
  • ax3.set_ylabel('y')
  • ax3.set_title('++++++++')
  • x = np.arange(0,10,0.1)
  • y1 = 0.5*x**2
  • y2 = -1*y1
  • fig,ax1 = plt.subplots()
  • ax2 = ax1.twinx()#镜像显示
  • ax1.plot(x,y1,'g-')
  • ax2.plot(x,y2,'b-')
  • ax1.set_xlabel('x data')
  • ax1.set_ylabel('y1 data',color = 'g')
  • ax2.set_ylabel('y2 data',color = 'b')
  • plt.show()
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档