使用matplotlib画图

一、介绍

官方文档: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()

 

posted @ 2019-07-16 13:41  巽逸  阅读(1618)  评论(0编辑  收藏  举报