plot 折线图
plot(*args, scalex=True, scaley=True, data=None, **kwargs)
参数说明:
x,y:分别表示所有点的x坐标和y坐标。y和x可以满足某种函数关系,属于*args中的参数
linestyle:线型,属于**kwargs中的参数
marker:点形状,属于**kwargs中的参数
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-10,10,40)
y1,y2 = x / 2, x**2
fig = plt.figure() #创建figure对象
ax = fig.add_axes([0.1,0.1,0.8,0.8]) #添加坐标轴对象
ax.plot(x,y1,color='r',marker="o") #在坐标轴对象上进行绘图
ax.plot(x,y2,linestyle="-.",color='b',marker="v")
plt.show()
bar 条形图
bar(x, height, width=0.8, bottom=None, *, align='center', data=None, **kwargs)
参数说明:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(1,7)
y1,y2 = [20,40,10,50,60,80],[30,20,60,50,80,65]
barwidth = 0.3
fig = plt.figure() #创建figure对象
ax = fig.add_axes([0.1,0.1,0.8,0.8]) #添加坐标轴对象
ax.bar(x,y1,width=barwidth) #在坐标轴对象上进行绘图
ax.bar(x + barwidth,y2,width=barwidth)
plt.show()
barh 水平条形图
barh(y, width, height=0.8, left=None, *, align='center', **kwargs)
参数说明:
import matplotlib.pyplot as plt
import numpy as np
y = np.arange(1,7)
x1,x2 = [20,40,10,50,60,80],[30,20,60,50,80,65]
barheight = 0.3
fig = plt.figure() #创建figure对象
ax = fig.add_axes([0.1,0.1,0.8,0.8]) #添加坐标轴对象
ax.barh(y,x1,height=barheight) #在坐标轴对象上进行绘图
ax.barh(y + barheight,x2,height=barheight)
plt.show()
hist 直方图
hist(x, bins=None, range=None, density=False, weights=None, cumulative=False, bottom=None, histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False, *, data=None, **kwargs)
import matplotlib.pyplot as plt
import numpy as np
sigma = 1 #标准差
mean = 0 #均值
x=mean+sigma*np.random.randn(10000) #正态分布随机数
fig,(ax0,ax1) = plt.subplots(nrows=2,figsize=(9,6)) #在窗口上添加2个子图
ax1.hist(x,bins=40,normed=False,histtype='bar',facecolor='yellowgreen',alpha=0.75) #normed是否归一化,histtype直方图类型,facecolor颜色,alpha透明度
ax2.hist(x,bins=20,normed=1,histtype='bar',facecolor='pink',alpha=0.75,cumulative=True,rwidth=0.8) #bins柱子的个数,cumulative是否计算累加分布,rwidth柱子宽度
plt.show() #所有窗口运行
pie 饼状图
pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=None, radius=None, counterclock=True, wedgeprops=None, textprops=None, center=(0,0), frame=False, rotatelabels=False, *, data=None)
参数说明:
x:每个扇形所占的比重,可以传入原始数据它会自动帮我们计算出各自所占的比重
labels:每个扇形的标签,需要按x中的顺序传入标签数组
explode:扇形顶点离饼中心的距离(用来进行突出显示用的),同样需要按x中的顺序传入对应的数组
atuopct:饼图内百分比显示样式控制,例如%1.2f%%表示保留两位小数点且增加百分号
import matplotlib.pyplot as plt
import numpy as np
x = [28,16,10,9,37]
labels=["华东地区","华南地区","华北地区","其他","港澳台及海外地区"]
explode = [0,0,0,0,0.05]
fig = plt.figure() #创建figure对象
ax = fig.add_axes([0.1,0.1,0.8,0.8]) #添加坐标轴对象
ax.pie(x,labels=labels,explode=explode,autopct=r"%1.0f%%") #在坐标轴对象上进行绘图
plt.show()
scatter 散点图
scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, edgecolors=None, *, data=None, **kwargs)
alpha:透明度,值在0~1之间,0代表透明,1代表不透明
import matplotlib.pyplot as plt
import numpy as np
x = np.random.normal(1,10,40)
y = np.random.normal(1,10,40)
fig = plt.figure() #创建figure对象
ax = fig.add_axes([0.1,0.1,0.8,0.8]) #添加坐标轴对象
ax.scatter(x,y,marker="*")
plt.show()
polar 极坐标图
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure() #新开一个窗口
ax1 = fig.add_subplot(1,2,1,polar=True) #启动一个极坐标子图
theta=np.arange(0,2*np.pi,0.02) #角度数列值
ax1.plot(theta,2*np.ones_like(theta),lw=2) #画图,参数:角度,半径,lw线宽
ax1.plot(theta,theta/6,linestyle='--',lw=2) #画图,参数:角度,半径,linestyle样式,lw线宽
ax2 = fig.add_subplot(1,2,2,polar=True) #启动一个极坐标子图
ax2.plot(theta,np.cos(5*theta),linestyle='--',lw=2)
ax2.plot(theta,2*np.cos(4*theta),lw=2)
ax2.set_rgrids(np.arange(0.2,2,0.2),angle=45) #距离网格轴,轴线刻度和显示位置
ax2.set_thetagrids([0,45,90]) #角度网格轴,范围0-360度
plt.show()