python画图

发布时间:2019-08-29 07:34:28编辑:auto阅读(1509)

    #!/bin/env python
    #coding=utf8
    '''
    function: show total of all data in one picture
    write: zhanglejie
    date: 2015/09/22
    '''
    import numpy as np
    import pylab as pl
    import string
    import matplotlib.ticker as ticker
    from matplotlib.dates import DayLocator, HourLocator, DateFormatter, drange
    from datetime import datetime,timedelta
    from matplotlib.dates import AutoDateLocator, DateFormatter  
    from matplotlib.font_manager import FontProperties
    from matplotlib.ticker import MultipleLocator,FormatStrFormatter

    #define font of chinese
    font = FontProperties(fname="/usr/share/fonts/cjkuni-ukai/ukai.ttc", size=15)
    font_small = FontProperties(fname="/usr/share/fonts/cjkuni-ukai/ukai.ttc", size=13)
    #define picture size
    pl.figure(figsize=(15,8), dpi=60)
    pl.subplots_adjust(bottom=0.060, left=0.035, top=0.975, right=0.958)
    #split picture to two
    ax1 = pl.subplot(311)
    ax2 = pl.subplot(312)
    ax3 = pl.subplot(313)
    ax1.grid(True)  #show grid
    ax2.grid(True)
    ax3.grid(True)

    #
    #define
    x_time = np.linspace(14,1,14,endpoint=True)  
    #x_time = []
    y_active = []
    y_new = []
    y_earn_money = []
    y_new_vip = []
    y_new_register = []
    y_new_point = []
    y_used_point = []
    y_all_point = []
    y_new_payer = []
    y_all_payer = []

    #
    for line in file('/tmp/pic_data.txt'):
      if string.strip(line) != '':
        info = line.split()
    #    x_time.append(info[0])
        y_active.append(info[1])
        y_new.append(info[2])
        y_earn_money.append(info[4])
        y_new_vip.append(info[5])
        y_new_register.append(info[6])
        y_new_point.append(info[7])
        y_used_point.append(info[8][1:])
        y_new_payer.append(info[9])
        y_all_point.append(info[10])
        y_all_payer.append(info[11])

    #print x_time
    #
    #
    #pl.title(u'报告',fontproperties=font)
    pl.xlabel(u'几天前',fontproperties=font)
    #
    ax1.xaxis.set_major_locator(MultipleLocator(1))
    ax1.yaxis.set_major_locator(MultipleLocator(150))
    ax1.plot(x_time, y_active,'o-',color='blue',linewidth=2.5,label=u'活跃用户')
    ax1.plot(x_time, y_all_payer,'o-',color='darkcyan',linewidth=2.5,label=u'总付费用户')
    ax1.legend(loc='best', frameon=False,prop=font_small)
    #
    ax2.xaxis.set_major_locator(MultipleLocator(1))
    ax2.yaxis.set_major_locator(MultipleLocator(10))
    ax2.plot(x_time, y_new_register,'o-',color='blue',linewidth=2.5,label=u'新增注册')
    ax2.plot(x_time, y_new_vip,'o-',color='red',linewidth=2.5,label=u'新增会员')
    ax2.plot(x_time, y_new,'o-',color='green',linewidth=2.5,label=u'新增用户')
    ax2.plot(x_time, y_earn_money,'o-',color='magenta',linewidth=2.5,label=u'收入')
    ax2.plot(x_time, y_new_payer,'o-',color='darkmagenta',linewidth=2.5,label=u'新增付费用户')
    ax2.legend(loc='best', frameon=False,prop=font_small)
    #
    ax3.xaxis.set_major_locator(MultipleLocator(1))
    ax3.yaxis.set_major_locator(MultipleLocator(5000))
    ax3.plot(x_time, y_new_point,'o-',color='blue',linewidth=2.5,label=u'新增积分')
    ax3.plot(x_time, y_used_point,'o-',color='red',linewidth=2.5,label=u'消耗积分')
    ax3.plot(x_time, y_all_point,'o-',color='green',linewidth=2.5,label=u'总积分')
    ax3.legend(loc='best', frameon=False,prop=font_small)
    #
    pl.savefig("/tmp/all_data.png")



关键字