一、介绍
官方文档:https://www.matplotlib.org.cn/home.html
安装:pip install matplotlib
Matplotlib是一个Python 2D绘图库,可以生成各种硬拷贝格式和跨平台交互式环境的出版物质量数据。Matplotlib可用于Python脚本,Python和IPython shell,Jupyter笔记本,Web应用程序服务器和四个图形用户界面工具包。
二、使用例子
1、波形图
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(0,2*np.pi,100) #100个点组成的2*np.pi线
y1=np.sin(x) #y1线
y2=np.cos(x) #y2线
plt.title("sin&cos title") #标题
plt.xlabel("x") #x轴的名称
plt.ylabel("y") #y轴的名称
plt.plot(x,y1) #画y1线
plt.plot(x,y2) #画y2线
plt.show() #显示
图片
2、柱状图
import matplotlib.pyplot as plt
name_list = ["A","B","C","D"] #x轴柱状图的名字
num_list=[10,8,5,6.1] #y轴的值(如A=10,B=8,以此类推)
plt.bar(range(0,len(name_list)),num_list,color = "rgby",tick_label = name_list) #画图range(0,len(name_list))代表4个柱状图,color = "rgby"会循环这个规律的颜色
plt.show() #显示
3、堆叠柱状图
import matplotlib.pyplot as plt
name_list = ["A","B","C","D"]
num_list=[10,8,5,6.1]
num_list1=[5,7,3,8]
plt.bar(range(0,len(name_list)),num_list,color = "r",tick_label = name_list)
plt.bar(range(0,len(name_list)),num_list1,color = "g",tick_label = name_list)
plt.legend()
plt.show()
4、饼状图
import matplotlib.pyplot as plt
label = ["A","B","C","D"]
num = [12,30,50,8]
ex=[0.1,0,0.1,0] #比重,重点的会分出来,例如A,C
plt.axis(aspet=1) #1等分
plt.pie(x=num,autopct='%.2f%%',explode=ex,labels=label,colors="rgby",shadow=True,startangle=30) #startangle倾斜角度,shadow表示立体感(阴影)
plt.show()
5、实时画图
import matplotlib.pyplot as plt
ax=[] #定义空列表
ay=[]
plt.ion() #打开实时画图窗口
for i in range(100): #画的次数
ax.append(i)
ay.append(i**2)
plt.clf() #清除上一次的图
plt.plot(ax,ay) #画图
plt.pause(0.1) #时间间隔(类似sleep)
plt.ioff() #关闭实时画图
6、三维画点
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import random
x=np.random.normal(0,1,100) #生成0-1之间的100个x坐标
y=np.random.normal(0,1,100)
z=np.random.normal(0,1,100)
fig = plt.figure()
ax = Axes3D(fig) #打开3d窗口
ax.scatter(x,y,z) #画3d图
plt.show()
7、erwe散点图
import matplotlib.pyplot as plt
import numpy as np
import random
n=1000 #1000个点
x=np.random.randn(n) #生成1000个x轴坐标
y=np.random.randn(n)
plt.scatter(x,y) #画图
plt.show()
来源:oschina
链接:https://my.oschina.net/u/4383341/blog/3462390