Matplotlib多子图折线图

最近实习需要可视化统计数据

Matplotlib多子图折线图

plot的画图基本流程

  1. 给出数据
  2. 设定字体,画布,颜色
  3. 调用plot指定x,y,color,weight等等属性,需要注意x,y的数据个数要一致
  4. 设置title,lim,label,legend等辅助信息
  5. 如果是设置的子图,还需要设置adjust等等属性
  6. 最后给出show即可

下面这个是从csv中读取数据,并为每列数据画图的例子

多子图折线图

import pandas as pd
import numpy as np
import matplotlib
import matplotlib.pyplot as plt

color=['navy','red','yellowgreen','blueviolet','chocolate','darkblue','darksalmon','olive']

def drawGraph(FilePath,Actions,SensorNum):
    matplotlib.rcParams.update({'font.size': 8})

    # 解析得到当前文件的动作
    Action = None
    for tp in Actions:
        if tp in FilePath:
            Action = tp

    #得到所画图个数序列
    cols = [_ + 1 for _ in range(0, SensorNum)]
    #读入文件
    df = pd.read_csv(FilePath, usecols=cols)
    #x轴范围
    xlength=len(df.values.tolist())
    #y轴范围
    yMax=[-0.0002,0.0002]
	#尤其需要注意给出子图的布局格式三位数
    GraphID="%d%d"%(SensorNum,1)
    for i in range(0,SensorNum):
        #得到第i+1列,也就是第i个emg的数据
        y=df.iloc[:xlength,i]

        plt.subplot(GraphID+str(i+1))
        plt.ylim(yMax[0],yMax[1])
        plt.plot(range(0,xlength),y,color=color[i])
        plt.title("%dsEMG"%(i+1)+"  "+Action)
        plt.xlabel("ms")
    plt.subplots_adjust(hspace=0.8)
    plt.show()

你可能感兴趣的:(杂项)