Pyplot 是 Matplotlib 的子库,提供了和MATLAB 类似的绘图 API
import matplotlib.pyplot as plt
fig = plt.figure()ax = fig.add_subplot(111)ax.set(xlim=[0.5, 4.5], ylim=[-2, 8], title='An Example Axes',ylabel='Y-Axis',xlabel='X-Axis')plt.show()
线形图
matplotlib提供plot()函数绘制一系列点,用线将其连起来。
import numpy as npimport matplotlib.pyplot as pltx = np.linspace(0,np.pi)y_sin = np.sin(x)y_cos = np.cos(x)fig = plt.figure()# add_subplot(221)前面两个参数确定了面板的划分,第三个参数确定表示第几个Axisax1 = fig.add_subplot(221)ax2 = fig.add_subplot(222)ax3 = fig.add_subplot(224)ax1.plot(x,y_sin)ax2.plot(x,y_sin,'go--',linewidth=2,markersize=12)ax3.plot(x,y_cos,color='red',marker='+',linestyle='dashed') # 颜色,标记,线形plt.show()
plot()函数用法
格式:plt.plot(x, y, ls=‘-’, lw=2, label=‘xxx’, color=‘g’ )
x: x轴上的值
y: y轴上的值
ls:线条风格 (linestyle)
lw:线条宽度 (linewidth)
label:标签文本
注意: 对于线条颜色,必须写上color=‘red’,而不是只写color=‘’,不然会报错SyntaxError: positional argument follows keyword argument,意思是参数位置不正确导致的错误,也就是说 color=''没有默认的颜色
散点图
散点图用于表示多个变量的相关性。Matplotlib提供scatter()函数绘制散点图。
random.rand():这个函数的参数是数组的维度,取值范围是 [0,1)
import matplotlib.pyplot as pltimport numpy as npN = 50plt.scatter(np.random.rand(N)*50,np.random.rand(N)*50,c='r',s=50,alpha=0.5)plt.scatter(np.random.rand(N)*50,np.random.rand(N)*50,c='g',s=50,alpha=0.5)plt.scatter(np.random.rand(N)*50,np.random.rand(N)*50,c='b',s=50,alpha=0.5)plt.show()
scatter()函数用法
matplotlib.pyplot.scatter(x, y, s=20, c='b', marker='o', cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, hold=None, **kwargs)
x,y:表示的是shape大小为(n,)的数组,也就是我们即将绘制散点图的数据点,输入数据。
s:表示的是大小,是一个标量或者是一个shape大小为(n,)的数组,可选,默认20。
c:表示的是色彩或颜色序列,可选,默认蓝色’b’。但是 c不应该是一个单一的RGB数字,也不应该是一个RGBA的序列,因为不便区分。c可以是一个RGB或RGBA二维行数组。
饼状图
饼状图是被用于分成若干部分的圆表示部分在整体中所占的比例。Matplotlib中提供pie()函数来绘制饼状图
import matplotlib.pyplot as pltimport numpy as nplabels = ['Mon','Tue','Wed','Thu','Fri','Sat','Sun']data = np.random.rand(7)*100print(data)plt.pie(data,labels=labels,autopct='%1.1f%%') # labels :(每一块)饼图外侧显示的说明文字plt.axis('equal') # 该行代码使饼图长宽相等plt.legend() # 添加图例plt.show()