plot(x, y, ls="-", lw=1.5, label=None)
plot(x, y, color, marker, linestyle)
import numpy as np
import matplotlib.pyplot as plt
x=np.arange(0,12,0.3)
y1=np.sin(x)
y2=np.cos(x)
plt.figure() #新建一个图像窗口
plt.rcParams['font.sans-serif']=['SimHei'] #正常显示标题中中文
plt.rcParams['axes.unicode_minus'] = False #正常显示坐标轴中中文
plt.subplot(1,2,1) #使用第1个窗格
plt.plot(x,y1,'r*-') #绘图
#plt.plot(x,y1,color='r',marker='*',linestyle='-') #和上面等价
plt.title("正弦曲线") #标题
plt.xlabel('x轴') #x轴命名
plt.ylabel('y轴') #y轴命名
plt.grid() #添加网格
plt.legend(['sinx']) #显示图例
plt.subplot(1,2,2) #使用第2个窗格
plt.plot(x,y1,'r*-',label='sinx') #绘制正弦图像
plt.plot(x,y2,'g.--',label='cosx') #绘制余弦图像
plt.title('正弦曲线、余弦曲线') #标题
plt.legend() #显示图例
scatter(x, y, s=20, c='b', marker='o', cmap, alpha)
import numpy as np
import matplotlib.pyplot as plt
size=100
x=np.random.uniform(size=size)
y=np.random.uniform(size=size)
s=np.random.uniform(5,400,size=size) #点大小
c=np.random.uniform(size=size) #点颜色
lw=np.random.uniform(1,4,size=size) #边框宽度
plt.figure() #新建一个图像窗口
plt.subplot(1,2,1) #使用第1个窗格
plt.scatter(x,y,s=s,c=c,alpha=0.5,linewidths=lw,edgecolors='m') #绘制散点图
plt.subplot(1,2,2) #使用第2个窗格
plt.scatter(x,y,s=s,c=c,cmap='rainbow',alpha=0.5) #绘制散点图
cmap 为颜色图谱,取值如下: (见cmap设置颜色的参数)
这里仅介绍 xticks() 的用法:
import numpy as np
import matplotlib.pyplot as plt
x=np.arange(0,15.7,0.1)
y=np.sin(x)
plt.figure() #新建一个图像窗口
plt.plot(x,y,'r.') #绘图
ticks=np.arange(0,6)*np.pi
labels=['0π','1π','2π','3π','4π','5π']
plt.xticks(ticks,labels) #x轴示数标记
plt.grid() #显示网格
1.4.1 坐标轴刻度间隔
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.pyplot import MultipleLocator
x=np.arange(0,15.7,0.1)
y=np.sin(x)
plt.figure() #新建一个图像窗口
plt.plot(x,y,'r.') #绘图
ax=plt.gca() #获取坐标轴(axis)对象
ax.xaxis.set_major_locator(MultipleLocator(3.14)) #设置x轴示数间隔
plt.grid() #显示网格
可以看到,x 轴刻度为 3.14
1.4.2 坐标轴刻度格式
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.ticker import FormatStrFormatter
x=np.arange(0,15.7,0.1)
y=np.sin(x)
plt.figure() #新建一个图像窗口
plt.plot(x,y,'r.') #绘图
ax=plt.gca() #获取坐标轴(axis)对象
ax.yaxis.set_major_formatter(FormatStrFormatter('%.1f')) #设置y轴示数格式
plt.grid()
可以看到,y 轴刻度只显示1位小数。此方法也可以避免坐标轴示数有时候自动变成+e**的情况发生。
Axes3D
)在绘制三维图像时,需要先创建三维坐标轴对象 Axes3D ,创建方法主要有以下2种:
方法一:
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D #虽然没有明确调用 Axes3D,也不能省略,否则会报错
fig=plt.figure() #创建一个图像窗口
ax=plt.axes(projection='3d') #创建三维坐标轴对象
方法二:
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig=plt.figure() #创建一个图像窗口
ax=Axes3D(fig) #创建三维坐标轴对象
运行代码,可以看到创建了一个空的三维图像窗口,如下:
多窗格绘图:
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D #虽然没有明确调用 Axes3D,也不能省略,否则会报错
fig=plt.figure() #创建一个图像窗口
ax=fig.add_subplot(rows,cols,num,projection='3d') #添加一个三维子图
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
t=np.linspace(0,20,70) #参数,生成[0,20]之间70个点
x=np.sin(t)
y=np.cos(t)
z=2*t
fig=plt.figure() #创建一个图像窗口
ax=Axes3D(fig) #创建三维坐标轴对象
ax.plot(x,y,z,'r*-') #绘制3维曲线
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
size=150 #点个数
x=np.random.randint(0,30,size)
y=np.random.randint(0,30,size)
z=np.random.randint(0,30,size)
fig=plt.figure() #创建一个图像窗口
ax=Axes3D(fig) #创建三维坐标轴对象
s=np.random.randint(0,200,size) #点大小
c=np.random.randint(0,256,size) #点颜色
ax.scatter(x,y,z,s=s,c=c,alpha=0.8) #绘制3维散点图
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
x=np.linspace(0,10,50)
y=np.linspace(0,9,45)
X,Y=np.meshgrid(x,y) #生成格点,并将所有格点的x轴值和y轴值分别保存到 X 和 Y 中,X 和 Y 的维度:(45,50)
Z=np.sin(X)+np.cos(Y) #每个格点对应的函数值,维度:(45,50)
fig=plt.figure() #创建一个图像窗口
ax=fig.add_subplot(1,2,1,projection='3d') #添加一个三维子图
ax.plot_surface(X,Y,Z,cmap='hot') #绘制三维曲面,cmap为颜色图谱
ax=fig.add_subplot(1,2,2,projection='3d') #添加一个三维子图
ax.plot_surface(X,Y,Z,cmap='rainbow') #绘制三维曲面,cmap为颜色图谱
X,Y=np.meshgrid(x,y) 函数的作用是生成格点,并将所有格点的x轴值和y轴值分别保存到 X 和 Y 中,X 和 Y 的维度:(45,50) ,变量空间如下:
python绘图总结_python plot linestyle_little_fat_sheep的博客-CSDN博客