【存档】python学习笔记——matplotlib

Matplotlib是建立在Numpy基础之上的python绘图库。Matplotlib是python中常用的可视化工具之一,可以非常的方便的创建海量类型2D图标和一些基本的3D图标。


1.导入模块:

①from matplotlib import pylab

导入pyplot和numpy模块

②import matplotlib.pyplot as plt

仅导入plt,(常用)

2.基本绘图

import matplotlib.pyplotas plt

import numpy as np

x = np.linspace(-10,10,100)

y=np.sin(x)

plt.plot(x,y,ls="-",lw="2",c="k")

plt.show()

np.linspace(a,b,num=c)创建指定间隔内均匀间隔数字的一维数组——a为起始值,b为结束值,c为数组元素个数,即-10到10之间均匀的取100个数。plot()展现变量的趋势变化。通过show()展示绘制图形

①plot()——展示变量的趋势变化,主要展示折线、散点图

参数为:

x:x轴上的数值

y:y轴上的数值(x,y的数量要一样)

第三个参数可以设置散点图‘o’或者颜色等各种各样的样式,可以同时传入多个参数

ls:折线图的线条风格

lw:折线图的线条宽度(一个值)

c:折线图颜色  

①plt.plot(x,y,ls=":",lw="2",c="k")

②plt.plot(x,y,"rv")

③plt.plot(x,y,"*y")

    ·绘制多条曲线:

x = np.linspace(0,10,100)

y=np.sin(x)

plt.plot(x,y)

plt.plot(x,x+2)

plt.plot(x,np.log2(x))

plt.show()

多个曲线

②寻找变量之间的关系

plt.scatter()

参数:x,y轴上的数值,c散点图的标记颜色

x=np.linspace(0.05,10,1000)

y=np.random.rand(1000)

plt.scatter(x,y,c='b')

plt.show()

③xlim(),ylim()——设置x(y)轴的数值显示范围


xmin:x轴上最小值;ymin:y轴上最小值


④xlabel(string),ylabel(string)——设置x(y)轴的标签文本

x=np.linspace(0,10)

y = x**2

plt.xlabel("x")

plt.ylabel("y")

plt.title("nap")

plt.minorticks_on()

plt.plot(x,y,color='red')

plt.show()

string为x(y)轴上显示的文本

⑤grid()——绘制刻度线网格线

x=np.linspace(0,10)

y = x**2

plt.grid(ls=':',c='y')

plt.plot(x,y,c='b')

plt.show()

⑥axhline(),axvline()——绘制平行于x(y)轴的水平参考线

参数:

y(x):水平参考线出发点

c:颜色

ls:参考线线条风格

lw:参考线的线条宽度

x=np.linspace(0,10)

y = x**2

plt.axhline(y=40,c='r',ls=":",lw=2)

plt.axvline(x=6,c='r',ls=":",lw=2)

plt.plot(x,y,label ="plot figure")

plt.legend()

plt.show()

⑦axvspan(),axhspan()——绘制垂直于x轴的参考区域

参数:

x(y)min:参考区域的起始位置

x(y)max:参考区域的终止位置

facecolor:区域颜色

alpha:透明度

x=np.linspace(0,10)

y = x**2

# plt.axhline(y=40,c='r',ls=":",lw=2)

# plt.axvline(x=6,c='r',ls=":",lw=2)

plt.axvspan(xmin=6,xmax=8,facecolor="y",alpha=0.3)

plt.axhspan(ymin=40,ymax=60,facecolor="y",alpha=0.3)

plt.plot(x,y,label ="plot figure")

plt.legend()

plt.show()

⑧annotate()——添加图形内容细节的指向型注释文本

参数:

string:文本内容

xy:备注的图形内容的位置坐标

xytext:注释文本的坐标位置

weight:文本字体粗细风格

color:文本字体颜色

arrowprops:只是被注释内容的箭头属性字典

x=np.linspace(0,10)

y = x**2

plt.plot(x,y,label="x^2",c="b")

plt.legend()

plt.annotate("(1,1)",xy=(1,1),xytext=(1.5,6),color="b",arrowprops=dict(arrowstyle='->',connectionstyle='arc3',color='b'))

plt.show()

⑨text()——添加图形内容细节的无指向性注释文本

plt.text(x,y,string,weight="",color="")

x=np.linspace(0,10)

y = x**2

plt.plot(x,y,label="x^2",c="b")

plt.legend()

plt.text(4,30,"y=x^2",color='b')

plt.show()

⑩title()——添加图形内容标题

plt.title(string)

x=np.linspace(0,10)

y = x**2

plt.plot(x,y,label="x^2",c="b")

plt.legend()

plt.text(4,30,"y=x^2",color='b')

plt.title("y=x^2")

plt.show()

·legend()——表示不同图形的文本标签图例

plt.legend(loc='')

loc:图例在图中的地理位置


3.pyplot的基础图标函数如下


基础图标绘制

①饼图:

labels=[u"第一部分",u"第二部分",u"第三部分",u"第四部分"]

sizes=[15,30,45,10]

colors=['red','yellow','blue','green']

#每个标签的大小,百分比会自动算

explode=(0,0.1,0,0)

#将某部分分出来,使用括号,用数值表示分割出来的与其他几块的间隙

plt.figure(figsize=(6,9))

#调节图形大小宽高

figl,axl=plt.subplots()

plt.pie(sizes,explode=explode,labels=labels,colors=colors,autopct='%1.1f%%',startangle=90)

plt.axis('equal')

plt.show()



②直方图

plt.hist(x)

x:在x轴上绘制箱体的定量输入值

a=np.random.normal(100,20,size=100)

plt.hist(a,20,density=True,histtype='stepfilled',facecolor='b',alpha=0.75)

plt.title('histogram')

plt.show()

③极线图

plt.polar(theta,r)

theta:每个标记所在射线与极经的夹角

r:每个标记到原点的距离

theta=np.linspace(0.0,2*np.pi,15,endpoint=False)

r=30*np.random.rand(15)

plt.polar(theta,r,color='#6BBBEC',linewidth=2,marker='*',mfc='b',ms=10,linestyle=':')

plt.show()

④柱状图

plt.bar(x,y)

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

y=[3,1,4,5,8,9,7,2]

plt.bar(x,y,align='center',color='c',tick_label=["q","a","c","e","r","j","b","p"],hatch='/')

plt.show()





4.Matplotlib绘图区域:

plt.subplot(nrows,ncols,plot_number)

plot_number

plt.subplot(2,2,3)

a=np.random.normal(100,20,size=100)

plt.hist(a,20,density=True,histtype='stepfilled',facecolor='b',alpha=0.75)

plt.title('histogram')

plt.subplot(2,2,2)

labels=[u"第一部分",u"第二部分",u"第三部分",u"第四部分"]

sizes=[15,30,45,10]

colors=['red','yellow','blue','green']

#每个标签的大小,百分比会自动算

explode=(0,0.1,0,0)

#将某部分分出来,使用括号,用数值表示分割出来的与其他几块的间隙

plt.pie(sizes,explode=explode,labels=labels,colors=colors,autopct='%1.1f%%',startangle=90)

plt.axis('equal')

plt.subplot(2,2,1)

x=np.linspace(-5,5,100)

y=x**2

plt.plot(x,y,'-',c='b')

plt.subplot(2,2,4)

x=np.linspace(-5,5,100)

y=np.random.rand(100)

plt.scatter(x,y)

plt.show()

四个图形组合成一个窗口

你可能感兴趣的:(【存档】python学习笔记——matplotlib)