zoukankan      html  css  js  c++  java
  • python统计订单走势

    #coding=utf-8
    
    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    import matplotlib.ticker as ticker
    
    # ------------ 设置为系统中的中文字体------------
    from pylab import *
    mpl.rcParams['font.sans-serif'] = ['SimHei'] # linux下中文乱码处理
    mpl.rcParams['font.sans-serif'] = ['Microsoft YaHei'] # windows下中文乱码处理
    
    # plot 线形图
    # bar 条形图
    # scatter 点状图
    # stackplot 堆叠图
    CONST_FIGURE_TYPE = 'plot'
    
    def read_csv():
        filename = "E:/work/work_git/python_personalrepo/data/order_statis_2.csv"
        # filename = 'e:\order_statis_2.csv'
        df = pd.read_csv(filename)
        # print df.head()
        return df
    
    # 格式化日期
    def format_date(x, pos=None):
        thisindex = np.clip(int(x + 0.5), 0, len(df) - 1)
        datetime_ret = df['days'][thisindex]
        return datetime_ret
    
    # 构建数据
    def build_data_ordercount():
        x_axis_values = []
        y_axis_values = []
    
        # print df['days']
        for index, row in df.iterrows():
            x_axis_values.append(index)
            y_axis_values.append(row['count'])
    
        x_axis_values = np.arange(len(df))
        # print x_axis_values
        # print y_axis_values
    
        fig,ax = plt.subplots()
    
        ax.plot(x_axis_values, y_axis_values, 'o-',label=u'订单数量')
        # x轴标签 倾斜角度
        # plt.xticks(rotation=30)
    
        ax.xaxis.set_major_formatter(ticker.FuncFormatter(format_date))
        fig.autofmt_xdate()
    
    
    
        return False
    
    
    
    
    
    # 构建数据
    def build_data_ordermoney():
        x_axis_values1 = []
        y_axis_values1 = []
    
        for index, row in df.iterrows():
            x_axis_values1.append(index + 1)
            y_axis_values1.append(row['money']/1000.0)
    
        # print x_axis_values1
        # print y_axis_values1
    
        plt.plot(
            # X 轴
            x_axis_values1,
            # y轴
            y_axis_values1, 'ro-', label=u'订单金额')
    
        return False
    
    
    
    # 绘制图形
    def show_figure():
        plt.ylabel(u'订单数量')
        plt.xlabel(u'下单日期')
        plt.title(u'订单走势')
        plt.legend()
    
        plt.show()
    
        return False
    
    if __name__ == "__main__":
        df = read_csv()
        # print df.head()
        build_data_ordercount()
        build_data_ordermoney()
        show_figure()

      

  • 相关阅读:
    XML解析
    资源管理
    Android中的动态字符串的处理
    消息提示的三种方式
    程序调控和监视(Logcat,Debug)
    选择改变事件OnCheckedChange
    递归和非递归分别实现求n的阶乘
    递归和非递归分别实现strlen
    编写一个函数 reverse_string(char * string)实现:将参数字符串中的字符反向排列 。(递归实现)
    写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和
  • 原文地址:https://www.cnblogs.com/jiftle/p/7261116.html
Copyright © 2011-2022 走看看