使用xlim(x1,x2) 设定横坐标范围, 使用ylim(y1,y2) 设定纵坐标范围
使用xlim(x1,x2) 设定横坐标范围, 使用ylim(y1,y2) 设定纵坐标范围import numpy as npimport matplotlib.pyplot as pltx=np.arange(-5,5,0.1)y=x**2plt.xlim(-5,5)#设定横坐标范围plt.ylim(0,100)#设定纵坐标范围plt.xlabel("x")...
·
使用xlim(x1,x2) 设定横坐标范围, 使用ylim(y1,y2) 设定纵坐标范围
import numpy as np
import matplotlib.pyplot as plt
x=np.arange(-5,5,0.1)
y=x**2
plt.xlim(-5,5) #设定横坐标范围
plt.ylim(0,100) #设定纵坐标范围
plt.xlabel("x") #横轴标识
plt.ylabel("y=x*x") #纵轴标识
plt.title("Plot y=x*x") #设定图形标题
plt.plot(x,y)
plt.show()
特别指定纵坐标的刻度,制作能表达深意的图形
import numpy as np #引用 numpy库
import matplotlib.pyplot as plt #引用matplotlib库
from pylab import *
x=np.linspace(-np.pi,np.pi,100)
cos =np.cos(x)
xticks(np.linspace(-np.pi,np.pi,5))
plot (x,cos,color='red',linewidth=2.0,linestyle='-')
show()
Plot 的label参数
import numpy as np #引用 numpy库
from pylab import *
x=np.linspace(-np.pi,np.pi,100)
sin,cos =np.sin(x),np.cos(x)
xticks(np.linspace(-np.pi,np.pi,5))
plot (x,sin,color='blue',linewidth=2.0,linestyle='-',label='sin')
plot (x,cos,color='red',linewidth=2.0,linestyle='-',label='cos')
legend(loc='upper left')
show()
饼图
import numpy as np #引用 numpy库
import matplotlib.pyplot as plt #引用matplotlib库
data=np.random.randint(1,11,5)
plt.pie (data,explode=[0,0,0.2,0,0])
#explode的第三个参数为02,意味着队应饼块被拖出饼图
plt.show()
散点图
import numpy as np #引用 numpy库
from pylab import *
n=100
x=np.random.normal(0,1,n)
y=np.random.normal(0,1,n)
scatter(x,y)
show()
柱图+折线图
import numpy as np
import matplotlib.pyplot as plt #引用matplotlib库
import matplotlib as mpl
mpl.rcParams['font.family']='sans-serif'
mpl.rcParams['font.sans-serif']=[u'SimHei']
data=np.random.randint(1,10,10)
x=np.arange(len(data))
plt.plot(x,data,color='r')
plt.bar(x,data,alpha=.5,color='b',width=0.2)
plt.show()
子窗口制图
import numpy as np
import matplotlib.pyplot as plt #引用matplotlib库
x=np.linspace(0,5,10)
y=x**2
plt.subplot(1,2,1)
plt.plot(x,y,'r--')
plt.subplot(1,2,2)
plt.plot(y,x,'g*-')
plt.show()
改变参数
import numpy as np
import matplotlib.pyplot as plt #引用matplotlib库
x=np.linspace(0,5,10)
y=x**2
plt.subplot(2,1,1)
plt.plot(x,y,'r--')
plt.subplot(2,1,2)
plt.plot(y,x,'g*-')
plt.show()
指定图的大小和分辨率
指定图形的分辨率、大小和长宽比例(aspect ratio)
通过subplots函数中的figsize、dpi等参数实现
如创建一个800*600像素、100dpi(每英寸100点)分辨率的图形
import numpy as np
import matplotlib.pyplot as plt #引用matplotlib库
x=np.linspace(0,5,10)
y=x**2
fig,axes= plt.subplots(figsize=(8,6),dpi=100) #创建一个800*600像素、100dpi(每英寸100点)分辨率的图形
axes.plot(x,y,'r')
axes.set_xlabel('x')
axes.set_title('title')
plt.show()
三维图
除了要引用matplotlib外,
还需要引用mpl_toolkits.mplot3d库
还需要在matplotlib的figure函数生成实例对象后,设置其制图模式为3d
import numpy as np
import matplotlib.pyplot as plt #引用matplotlib库
from mpl_toolkits.mplot3d import Axes3D #引用mpl_toolkits.mplot3d库
fig=plt.figure()
ax=fig.add_subplot(111,projection='3d') #设置其制图模式为3d
x=[0,1,2,1.5]
y=[0,4,4,1]
z=[0,2,0,0]
ax.plot_trisurf(x,y,z)
plt.show()
三维曲面plot_trisurf
import numpy as np
import matplotlib.pyplot as plt #引用matplotlib库
from mpl_toolkits.mplot3d import Axes3D #引用mpl_toolkits.mplot3d库
fig=plt.figure()
ax=fig.add_subplot(111,projection='3d') #设置其制图模式为3d
n_angles=36
n_radii=8
radii=np.linspace(0.125,1.0,n_radii)
angles=np.linspace(0,2*np.pi,n_angles,endpoint=False)
angles=np.repeat(angles[...,np.newaxis],n_radii,axis=1) #将angles转置
x=np.append(0,(radii*np.cos(angles)).flatten())
y=np.append(0,(radii*np.sin(angles)).flatten())
#flatten()将矩阵的行之间首尾相连成一个以为矩阵
z=np.sin(-x*y)
fig=plt.figure()
ax=fig.gca(projection='3d')
ax.plot_trisurf(x,y,z,cmap=plt.get_cmap('rainbow'),linewidth=0.2)
plt.show()
三维曲面plot_surface
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.mlab as mlab
delta=0.025
x=np.arange(-3.0,3.0,delta) # 生成代表X轴数据的列表
y=np.arange(-2.0,2.0,delta) # 生成代表Y轴数据的列表
X,Y=np.meshgrid(x,y) # 对x、y数据执行网格化
Z1=mlab.bivariate_normal(X,Y,1.0,1.0,0.0,0.0)
Z2=mlab.bivariate_normal(X,Y,1.5,0.5,1,1)
Z=10.0*(Z2-Z1) # 计算Z轴数据
fig=plt.figure() #使用默认色创建带标签轮廓图
ax=fig.gca(projection='3d')
ax.plot_surface(X,Y,Z,cmap=plt.get_cmap('rainbow'),linewidth=0.2)
plt.show()
三维曲面plot_surface+scatter
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.mlab as mlab
from random import seed,random
fig = plt.figure()
ax=fig.gca(projection='3d') #进入3d图形绘制模式
x_surf=np.arange(0,1,0.01) #产生x坐标
y_surf=np.arange(0,1,0.01)
x_surf,y_surf=np.meshgrid(x_surf,y_surf)
z_surf=np.sqrt(x_surf+y_surf)
ax.plot_surface(x_surf,y_surf,z_surf) #画3d曲面
n=100;seed(0) #随机种子,产生可重复的数据
x=[random()for i in range(n)] #产生随机点
y=[random()for i in range(n)]
z=[random()for i in range(n)]
ax.scatter(x,y,z) #画3d散点图
ax.set_xlabel('xlabel');ax.set_ylabel('ylabel');
ax.set_zlabel('zlabel')
plt.show()
为三维曲面绘制等高线
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.mlab as mlab
delta=0.025
x=np.arange(-3.0,3.0,delta) # 生成代表X轴数据的列表
y=np.arange(-2.0,2.0,delta) # 生成代表Y轴数据的列表
X,Y=np.meshgrid(x,y) # 对x、y数据执行网格化
Z1=mlab.bivariate_normal(X,Y,1.0,1.0,0.0,0.0)
Z2=mlab.bivariate_normal(X,Y,1.5,0.5,1,1)
Z=10.0*(Z2-Z1)# 计算Z轴数据
plt.figure()
CS=plt.contour(X,Y,Z,10) #制作等高线,横砍10刀
plt.clabel(CS,inline=1,fontsize=10) #inline控制画标签,移除标签下的线
plt.show()
更多推荐

所有评论(0)