Matplotlib库的安装
打开电脑控制台,在首行输入python -m pip install matplotlib 等待一会儿若出现collecting successful则安装成功。
认识matplotlib库的相关参数
- figure:窗口视图,即利用库函数代码运行展现给程序员的直接可见结果
- axex:将一个图中同时展现多个小图,这些小图成为子图
- axis:绘制图形的轴
- label:绘制图形的轴的名称,通常和axis结合使用
- legend:标识图例,用来在一个图中展示多个图形时加以区分
- title:绘制图形的名字
#导入库
import matplotlib.pyplot as plt
import numpy as np
#python识别中文代码
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
#figure窗口图
fig = plt.figure(num=1)
plt.plot([1,2,3],[4,5,6],label='a')
plt.show()
结果为:
#导入库
import matplotlib.pyplot as plt
import numpy as np
#python识别中文代码
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
#axex子图,使用sublots函数来绘制子图
fig,ax = plt.sublots(2,2)
plt.show()
结果为:
#导入库
import matplotlib.pyplot as plt
import numpy as np
#python识别中文代码
matplotlib.rcParams['font.sans-serif'] = ['SimHei']
x=np.arange(0,5,0.1)
y=np.sin(x)
plt.plot(x,y,label='a')
plt.plot([3,6,8],[5,6,10],label='b')
# axis轴 label标签
plt.xlabel('x轴的名字')
plt.ylabel('y轴的名字')
#legend图例
plt.legend()
#title标题
plt.title('我的title名字')
plt.show()
结果为:
其他参数
如:color:设置绘图条或者线的颜色、linewidth设置线宽等等
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(1,6,0.1)
y = np.sin(x)
#'r--'设置颜色及样式,lw设置线条粗细
lines = plt.plot(x,y,'r--',lw=2.0)
plt.show()
结果为:
标注文本用来标注函数曲线的名称,如下图的数学符号segema
注释文本用来对图线进行注释,采用annotate()函数
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(1,100)
y = 2*x+1
plt.plot(x,y)
#标注文本 位置+符号
plt.text(40,70,r'$\sigma=2$')
#注释文本
plt.annotate('annotation',
xy=(60,121),
xytext=(40,125),
arrowprops = dict(facecolor='red'))
plt.show()
结果为:
参数实例运用
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(1,5,0.05)
y1 = np.sin(2*np.pi*x+1)
y2 = np.cos(2*np.pi*x+2)
fig = plt.figure()
ax1 = plt.subplot(211)
ax1.plot(x,y1,'r--')
#设置图线名称先颜色等
ax1.set(xlabel='ax1 xlebel',ylabel='ax1 ylabel',title='ax1 title')
#设置网格
ax1.grid()
ax2 = plt.subplot(212)
ax2.plot(x,y2,'go')
ax2.set(xlabel='ax2 xlebel',ylabel='ax2 ylabel',title='ax2 title')
plt.show()
结果为:
常见的几种图形详解
- 条形图
- 直方图
- 散点图
- 堆叠图
- 饼图
1:直方图----pyplot模块中的bar
import matplotlib.pyplot as plt
import numpy as np
#条形图
x = [1,2,3,4]
y = [5,7,9,1]
x2 = [8,5,7,1]
y2 = [3,3,2,10]
plt.bar(x,y,label="bar1",color='red')
plt.bar(x2,y2,label='bar2',color='green')
plt.legend()
plt.xlabel('xlable')
plt.ylabel('ylabel')
plt.title('title')
plt.show()
结果为:
2:直方图----pyplot模块中的hist
import matplotlib.pyplot as plt
import numpy as np
#直方图
ages = [15,16,1,6,18,21,22,23,25,21,30,33,34,45,56,66,70,73,75,45]
qj = [10,20,30,40,50,60,70,80]
#rwidth设置间距
plt.hist(ages,qj,rwidth=0.8,label='age',color='red')
plt.legend()
plt.xlabel('age')
plt.ylabel('age-num')
plt.title('地区人口数'.encode('utf-8'))
plt.show()
结果为:
3:散点图----pyplot模块中的scatter
import matplotlib.pyplot as plt
import numpy as np
#散点图
x = [3,5,1,8,9,10]
y = [1,10,11,2,5,4]
#marker设置点形状
plt.scatter(x,y,label='scatter',color='red',marker='*')
plt.legend()
plt.title('scatter')
plt.xlabel('xlabel')
plt.ylabel('ylabel')
plt.show()
结果为:
4:堆叠图----pyplot中的stackplot
import matplotlib.pyplot as plt
import numpy as np
#堆叠图
days = [1,2,3,4,5]
sleeping = [7,8,6,11,7]
eating = [2,3,4,3,2]
working = [7,8,7,2,2]
playing = [8,5,7,8,13]
plt.plot([],[],label='sleeping',color='r',lw='4')
plt.plot([],[],label='eating',color='g',lw='4')
plt.plot([],[],label='working',color='b',lw='4')
plt.plot([],[],label='playing',color='k',lw='4')
plt.stackplot(days,sleeping,eating,working,playing,colors=['r','g','b','k'])
plt.legend()
plt.show()
结果为:
5:饼图----pyplot模块中的pie
import matplotlib.pyplot as plt
#饼图
x = [10,30,20,40]
label = ['eating','sleeping','playing','working']
plt.pie(x,labels=label,
startangle=90.0,
colors=['r','b','k','g'],
autopct='%.2f%%',
explode=[0.1,0.0,0.0,0.0],#设置溢出
shadow = True) #设置阴影
plt.title('my pie')
plt.show()
结果为:
更多更新请持续关注