• matplotlib数据可视化


    • 导入绘图库
    import matplotlib.pyplot as plt
    import numpy as np
    import pandas as pd
    import os
    
    • 1
    • 2
    • 3
    • 4
    • 读取数据(数据来源是一个EXCLE表格,这里演示的是如何将数据可视化出来)
    os.chdir(r'E:\jupyter\数据挖掘\数据与代码')
    df = pd.read_csv('air_data.csv',na_values= '--') 
    
    • 1
    • 2

    1.折线图

    • plt.plot(x,y,ls=,lw=,c=,marker=,markersize=,markeredgecolor=,markerfacecolor, label=)

    • x: x轴上的数值

    • y: y轴上的数值

    • ls- -函数线条风格(=‘-’ 实线, ‘–’ 虚线 ,‘-.’ 点划线 ,‘:’ 实点线)

    • lw: 线条宽度

    • c: 颜色

    • marker: 线条上点的形状, 常用为’o’,即圆点形状

    • markersize: 线条上点的形状

    • markeredgecolor: 点的边框色

    • markerfacecolor: 点的填充色

    # 绘制观察窗口内的飞行次数和观测窗口内的总飞行里程数
    # 支持中文显示
    plt.rcParams['font.sans-serif']=['SimHei']# 字体
    plt.rcParams['axes.unicode_minus']=False
    x=np.linspace(0,10,100)
    y=np.sin(x)
    plt.plot(x,y,ls='-',lw=2,marker='o',markersize=5,c='red',markeredgecolor='black',markerfacecolor='lightskyblue')
    plt.show()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    image.png

    2.直方图

    • hist:数据
    • bins:组距
    • color:填充色
    • edgecolor:边框色
    • density:是否绘制成概率密度形式
    • xlabel:横坐标
    • ylabel:纵坐标
    • labelpad/pad:离坐标轴的距离
    # 绘制年龄的分布情况
    plt.hist(x=df['AGE'],bins=30,color='r',edgecolor='black',density=True) # density=True 代表是否绘制概率密度形式
    plt.xlabel('客户年龄',fontsize=15,labelpad=20)
    plt.ylabel('频数',fontsize=15,labelpad=20)
    plt.title('年龄分布图',fontsize=15,pad=20)
    plt.show()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    image.png

    3.箱线图

    • plt.boxplot(x,notch,sym,vert,whis,position,widths,patch_artist,meanline,showmeans, boxprops,labels,flierprops)

    • x: 数据

    • 宽度:宽度

    • patch_artist: 是否填充箱体颜色

    • meanline:是否显示均值

    • showmeans: 是否显示均值

    • meanprops;设置均值属性,如点的大小,颜色等

    • medianprops:设置中位数的属性,如线的类型,大小等

    • showfliers: 是否表示有异常值

    • boxprops:设置箱体的属性,边框色和填充色

    • cappops: 设置箱线顶端和末端线条的属性,如颜色,粗细等

    age=df[df['AGE'].notnull()]['AGE'] # 剔除年龄的空值
    plt.boxplot(x=age,patch_artist=True,boxprops={'color':'red'})
    plt.show()
    
    • 1
    • 2
    • 3

    image.png

    4.柱状图

    # 将字符型数据转换date格式
    df['FFP_DATE']=pd.to_datetime(df['FFP_DATE'],format='%Y/%m/%d',errors='coerce') # errors 避免报错
    data=df['FFP_DATE'].dt.year.value_counts()
    x_data=data.index
    y_data=data.values
    plt.bar(x=x_data,height=y_data,align='center',color='y',tick_label=x_data)
    plt.title('不同年份的会员数量',pad=5)
    plt.show()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    image.png

    5.饼图

    • autopct:设置百分比的格式
    data=df['GENDER'].value_counts()
    # 绘制饼图
    plt.pie(x=data.values,labels=data.index,colors=['lightskyblue','lightcoral'],autopct='%.1f%%')
    plt.show()
    
    • 1
    • 2
    • 3
    • 4

    image.png

    6.散点图

    # 飞行次数与总飞行公里数的关系
    plt.scatter(x=df['FLIGHT_COUNT'],y=df['SEG_KM_SUM'],color='steelblue',marker='o',s=100)
    plt.title('飞行次数与总飞行公里数的关系')
    plt.show()
    
    • 1
    • 2
    • 3
    • 4

    image.png

  • 相关阅读:
    【得到日期对象NSDate的各个部分 Objective-C语言】
    MySQL 日期函数大全(更新中.....)
    【FLASH存储器系列五】SPI NOR FLASH芯片使用指导之一
    ThreadLocal巨坑!内存泄露只是小儿科
    驱动开发之pinctrl 和 gpio 子系统
    基于JAVA的俄罗斯方块游戏的设计与实现
    【MySQL】日期格式化 yyyy-mm-dd 详解 DATE_FORMAT() 函数
    bodipy荧光染料BDP 558/568 NHS ester/琥珀酰亚胺活化酯,CAS:150173-73-2
    Intel 64 和 IA-32 架构指令前缀
    【Leetcode每日一题】2022-09-30 面试题 01.08 零矩阵 Java实现
  • 原文地址:https://blog.csdn.net/qq_35653657/article/details/126003632