zoukankan      html  css  js  c++  java
  • Python高级数据处理与可视化(二)---- Matplotlib绘图基础

    2. Matplotlib绘图基础

      问题:CentOS下没有图片生成,改为Windows下Anaconda IDE。

      2.1 最著名的Python绘图库,主要用于二维绘图:

        2.1.1 画图质量高

        2.1.2 方便快捷的绘图模块:

          绘图API -- pyplot模块

          集成库 -- pylab模块(包含Numpy和pyplot中的常用函数)

      2.2 心型曲线绘制:http://matplotlib.org/examples/shapes_and_collections/path_patch_demo.html

    # -*- coding: utf-8 -*-
    """
    Demo of a PathPatch object.
    """
    import matplotlib.path as mpath
    import matplotlib.patches as mpatches
    import matplotlib.pyplot as plt
    
    
    fig, ax = plt.subplots()
    
    Path = mpath.Path
    path_data = [
        (Path.MOVETO, (1.58, -2.57)),
        (Path.CURVE4, (0.35, -1.1)),
        (Path.CURVE4, (-1.75, 2.0)),
        (Path.CURVE4, (0.375, 2.0)),
        (Path.LINETO, (0.85, 1.15)),
        (Path.CURVE4, (2.2, 3.2)),
        (Path.CURVE4, (3, 0.05)),
        (Path.CURVE4, (2.0, -0.5)),
        (Path.CLOSEPOLY, (1.58, -2.57)),
        ]
    codes, verts = zip(*path_data)
    path = mpath.Path(verts, codes)
    patch = mpatches.PathPatch(path, facecolor='r', alpha=0.5)
    ax.add_patch(patch)
    
    # plot control points and connecting lines
    x, y = zip(*path.vertices)
    line, = ax.plot(x, y, 'go-')
    
    ax.grid()
    ax.axis('equal')
    plt.show()
    path_patch_demo.py

      2.2 将Cocacola近一年来股票收盘价的月平均价绘制成折线图,散点图,直方图(括号中参数为列表)

    from matplotlib.finance import quotes_historical_yahoo_ochl
    from datetime import date, datetime
    import time
    import pandas as pd
    import matplotlib.pyplot as plt
    today = date.today()
    start = (today.year-1, today.month, today.day)
    quotes = quotes_historical_yahoo_ochl('KO', start, today)
    fields = ['date','open','close','high','low','volume']
    list1 = []
    for i in range(0,len(quotes)):
        x = date.fromordinal(int(quotes[i][0]))
        y = datetime.strftime(x,'%Y-%m-%d')
        list1.append(y)
    #print(list1)
    quoteskodf = pd.DataFrame(quotes, index = list1, columns = fields)
    quoteskodf = quoteskodf.drop(['date'], axis = 1)
    #print(quotesdf)
    listtemp = []
    for i in range(0,len(quoteskodf)):
        temp = time.strptime(quoteskodf.index[i],"%Y-%m-%d")  # 提取月份
        listtemp.append(temp.tm_mon)
    #print(listtemp) # “print listtemp” in Python 2.x
    tempkodf = quoteskodf.copy()
    tempkodf['month'] = listtemp
    closeMeansKO = tempkodf.groupby('month').mean().close
    listKO = []
    for i in range(1,13):
        listKO.append(closeMeansKO[i])
    listKOIndex = closeMeansKO.index
    plt.plot(listKOIndex,listKO)  # 前两个参数为x轴和y轴的数据,第三个参数默认折线图,'o'则为散点图
    #plt.bar(listKOIndex,listKO)  # 则为直方图
    plt.show()
    plt.plot(listKOIndex,listKO)

      

      2.3 Numpy数组也可作为Matplotlib的参数 和 pylab绘图

    import numpy as np
    import matplotlib.pyplot as plt
    t = np.arange(0.,4.,0.1)
    plt.plot(t,t,t,t+2,t,t**2)
    plt.show()
    plt.plot(t,t,t,t+2,t,t**2)
    import numpy as np
    import matplotlib.pylab as pl
    t = np.arange(0.,4.,0.1)
    pl.plot(t,t,t,t+2,t,t**2)
    pl.show()
    import matplotlib.pylab as pl

  • 相关阅读:
    Ubuntu下官方QQ崩溃的解决
    [转]PHP函数的实现原理及性能分析
    [收藏的资料]301重定向的实现方法
    手动配置Ubuntu 指定DNS服务器地址
    C# FTP操作类
    vs2010 快捷键大全
    分享一个不错的VS插件——CodeMap
    C# 快速的批量修改重命名.net程序的命名空间(一)转 tianyaxiang
    jquery 的 ajax 程序 简单的
    winform窗体间传值
  • 原文地址:https://www.cnblogs.com/wnzhong/p/6345620.html
Copyright © 2011-2022 走看看