当前位置 博文首页 > python数据可视化之matplotlib.pyplot基础以及折线图

    python数据可视化之matplotlib.pyplot基础以及折线图

    作者:Arwen_H 时间:2021-08-03 18:08

    不论是数据挖掘还是数据建模,都免不了数据可视化的问题。对于Python来说,Matplotlib是最著名的绘图库,它主要用于二维绘图,当然它也可以进行简单的三维绘图(基于spyder)。

    - 模块引用

    import matplotlib.pyplot as plt #引用画图库中的pyplot模块
    

    -折线条图

    语法

    import matplotlib.pyplot as plt
    data=[1,2,3,4,5,4,2,4,6,7] #随便创建了一个数据
    plt.plot(data) #引用画图库中的pyplot模块
    

    plot参数

    基本折线图不能满足,这时就需plot的参数来进行调整

    美化示例:

    import matplotlib.pyplot as plt
    yy=[1,2,3,4,5,4,2,4,6,7]#随便创建了一个数据
    xx=[3,5,4,1,2,3,4,5,6,3]
    zz=[2,3,4,6,4,3,2,4,5,6]
    plt.plot(yy,color='r',linewidth=5,linestyle=':',label='数据一')#color指定线条颜色,labeL标签内容
    plt.plot(xx,color='g',linewidth=2,linestyle='--',label='数据二')#linewidth指定线条粗细
    plt.plot(zz,color='b',linewidth=0.5,linestyle='-',label='数据三')#linestyle指定线形为点
    plt.legend(loc=2)#标签展示位置,数字代表标签具位置
    plt.xlabel('X轴称')
    plt.ylabel('Y轴的名称')
    plt.title('2018.7.30折线图示例')
    plt.ylim(0,10)#Y轴标签范围为0-10
    

    plt常用参数有:

    官网详细说明点这里

    属性 描述
    xlabel 设置当前轴的x轴标签:plt.xlabel(‘X标签名')
    ylabel 设置当前轴的y轴标签:plt.xlabel(‘y标签名')
    title 设置当前轴的标题:plt.title(‘图例标题名')
    ylim 获取或设置当前轴的y限制,plt.ylim(0,6)Y轴范围0-6;Xlim同理懒的写了
    legend 在轴上放置图例:legend()无参数自动识别,也可用数字指定位置1,2,3,4试着来
    show 展示所画图,spyder一般直接运行不需要此步
    grid plt.grid()打开或关闭轴网格,网格一样能设置颜色线型
    rcParams[‘font.sans-serif'] 图表中文字体:plt.rcParams[‘font.sans-serif']=[‘SimHei']微软雅黑;或=[‘Microsoft Yahei']黑体
    rcParams[‘axes.unicode_minus'] 图表轴负数符号显示问题:plt.rcParams[‘axes.unicode_minus'] = False

    plt常画图例有:

    官网详细说明点这里

    属性 描述
    plot 绘制y与x作为线和/或标记。
    plot_date 绘制包含日期的数据。
    acorr 绘制x的自相关。
    axhline 在轴上添加一条水平线。
    bar 制作条形图。
    barh 制作一个水平条形图。
    hist 绘制直方图
    hist2d 制作2D直方图。
    scatter y与x的散点图,具有不同的标记大小和/或颜色。
    stackplot 绘制堆积区域图。

    plot常用参数有:

    官网详细说明点这里

    属性 描述
    color 字体颜色:color=‘r';b、g、r、c、m、y、k、w 或者blue、green、red、cyan、magenta、yellow、black、whtite 或十六进制字符串('#008000')
    linewidth 线条粗细:linewidth=1.=5.=0.3
    linestyle 线条形状:linestyle='–'(虚线);linestyle=':'(点线);linestyle='-.'(短线加点);
    label 数据标签内容:label=‘数据一',数据标签展示位置需另说明plt.legend(loc=1)数字为标签位置

    实际应用案例

    因案例涉及机密数据,只展示数据可视化的过程及结果,先放结果输出的样式

    import pandas as pd #导入pandas库
    import pymysql as mysql #导入mysql库
    import matplotlib.pyplot as plt #导入数据可视化库
    import numpy as np #导入numpy库
    plt.rcParams['font.sans-serif'] = ['Microsoft Yahei'] #指定文字字体格式为微软雅黑字段
    plt.rcParams['axes.unicode_minus'] = False
    
    connection=mysql.connect(host='数据库ip',port='端口',user='用户账号',password='登录密码',db='连接的库名',charset='utf8')#设置连接数据库的参数
    select=connection.cursor()#创建游标
    select.execute("SELECT * FROM tabel")#写入SQL查询语句
    zd=list((pd.DataFrame(list(select.description)))[0])#获取查询结果的列名
    sqldata=select.fetchall()#获取查询结果
    select.close #关闭查询
    connection.close #关闭数据库接接
    data1=pd.DataFrame(list(sqldata)) #将数据转化成df类型
    data1.columns=zd #将列名重置为查询结果列名
    
    plt.figure(figsize=(10,5)) #设置图表大小,长10,宽5
    plt.plot(data1['机器A拟合度'],label='机器A准确率',color='#aa0000',linestyle='-',linewidth=3)#画机器A准确率的线条
    plt.plot(data1['人工A拟合度'],label='人工A准确率',color='#aa0000',linestyle=':',linewidth=3)#画人工A准确率的线条
    plt.plot(data1['机器B拟合度'],label='机器B准确率',color='#666666',linestyle='-',linewidth=3)#画机器B准确率的线条
    plt.plot(data1['人工B拟合度'],label='人工B准确率',color='#666666',linestyle=':',linewidth=3)#画人工B准确率的线条
    plt.plot([0,7],[0.9,0.9],color='g',linestyle='-.',linewidth=1)#画一根绿色的辅助线,x轴从0到7,Y轴为0.9
    plt.xticks(np.arange(8),('wk23','wk24','wk25','wk26','wk27','wk28','wk29','wk30'))#更改图表X标签为制定内容
    plt.legend(loc=4)#将图例说明放在图表的右下角
    plt.title('人机绝对准确率6.4-7.29',fontsize=20)#命名图表名称,设置字体大小
    plt.xlabel('周',fontsize=20)#设置X轴名称及字体大小
    plt.ylabel('准确率%',fontsize=20)#设置Y轴名称及字体大小
    

    总结

    jsjbwy
    下一篇:没有了