zoukankan      html  css  js  c++  java
  • pandas之绘图

    pandas绘图


    pandas绘图是基于matplotlib的上层封装 正常工作一般先用pandas绘图,再辅以matplotlib修改组件


    Pandas绘图的优势:

    • 代码简洁
    • 针对pandas数据结构专门优化过(series/DataFrame) 劣势:
    • pandas绘图自定义程度较差
    • matplotlib自定义程度高
    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    plt.rcParams['font.family'] = ['Artial Unicode MS','Microsoft Yahei', 'SimHei', 'sans-serif'] # 解决中文乱码问题
    # plt.rcParams['axes.unicode_minus'] = False # simhei黑体字 符号乱码 解决
    # plt.style.use('seaborn')  # 改变图像风格
    
    # series绘图
    ts = pd.Series(np.random.randn(1000),index=pd.date_range('1/1/2000',periods=1000))
    ts.plot(figsize=(18,8),title='股票价格')
    # DataFrame绘图
    df = pd.DataFrame(
        np.random.randn(10,4).cumsum(0),
        columns=['A','B','C','D'],
        index=np.arange(0,100,10)
    )
    df.plot()
    

     

    pandas绘图常见的参数

    • 核密度估计图比直方图的优势
      • 线条表现数据分布,可以对比多组数据的分布情况
      • 分布情况平滑,更容易观看
    df.plot()
    df.plot(kind='bar')  # 柱状图
    df.plot(kind='hist', alpha=0.5)
    df.plot(kind='kde',figsize=(18,5),alpha=0.5,grid=True,legend=True) # 核密度估计
    # 修改网格粗细和透明度
    plt.grid(linewidth=0.2, alpha=0.5)
    

    matplotlib子图和pandas结合  

    fig,axis = plt.subplots(2,1)  # 2,1 2行1列
    df.plot.bar(ax=axis[0],alpha=0.5)
    df.plot.line(ax=axis[1],color='red',alpha=0.5)
    

    堆积柱状图

    df  = pd.DataFrame(
        np.random.rand(6,4),
        index=['one','two','three','four','five','six'],
        columns=pd.Index(['A','B','C','D'],name='Genus')
        )
    df
    
    df.plot.bar(stacked=True,alpha=0.5,legend=False)
    
    s = pd.Series([1,1,2,3,4,4,4,4,5,6,6])
    s.value_counts().plot.bar()
    s.value_counts().plot.barh()
    

      

      

      

      

      

    本文为原创文章,转载请标明出处
  • 相关阅读:
    [排错] VO对象和POJO对象的关系
    celery(异步处理)+redis
    django开发经验(每日生鲜)
    开发流程
    linux 使用问题
    磁盘的操作
    文件系统的简单操作
    LINUX磁盘与档案系统
    文件操作
    Linux文档修改
  • 原文地址:https://www.cnblogs.com/harden13/p/13214191.html
Copyright © 2011-2022 走看看