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

 

posted on 2017-01-24 01:15  你的踏板车要滑向哪里  阅读(853)  评论(0编辑  收藏  举报

导航