美文网首页
Python实战计划学习笔记(15)7日发帖量图表呈现作业

Python实战计划学习笔记(15)7日发帖量图表呈现作业

作者: 如恒河沙 | 来源:发表于2016-09-10 22:08 被阅读0次

    心得

    • charts图表采用固定格式输入,只要把options设好,series数据列表摆好,就能画出图表(目前主要看到了柱图和折线图两种形式)
    • 横轴按时间展现时,要用一个函数输出所有单个日期元素,此时会用到datetime库

    我的代码

    import pymongo
    import charts
    from datetime import timedelta,date
    
    client = pymongo.MongoClient('localhost',27017)
    test = client['test']
    item_info = test['sample']
    
    #观察库中的数据分类规律
    for i in item_info.find({},{'_id':0,'cates':1}).limit(300):
        print(i)
    
    #给出起始日期,自动取7天日期的函数
    def get_seven_dates(the_date):
        the_date = date(int(the_date.split('.')[0]),int(the_date.split('.')[1]),int(the_date.split('.')[2]))
        days = timedelta(days=1)
        for i in range(1,8,1):
            yield the_date.strftime('%Y.%m.%d')
            the_date = the_date + days
    
    #给出起始日期和分类,自动取7日发帖量数据列表
    def get_data_within(start_date,classes):
        for the_class in classes:
            the_class_day_posts = []
            for date in get_seven_dates(start_date):
                a = list(item_info.find({'pub_date':date,'cates':the_class}))
                #print('#'*20,date,the_class,len(a),'#'*20)
                each_day_posts = len(a)
                the_class_day_posts.append(each_day_posts)
            data = {
                'name':the_class,
                'data':the_class_day_posts,
                'type':'line'
            }
            yield data
    
    #准备图表的选项
    options = {
        'chart':{'zoomType':'xy'},
        'title': {'text':'七日分类发帖量统计'},
        'subtitle': {'text':'按时间和分类'},
        'xAxis' : {'categories':[i for i in get_seven_dates(start_date)]},
        'yAxis' : {'title': { 'text' : '数量'}}
    }
    #图表输入数据
    series = [ i for i in get_data_within(start_date,['北京二手手机','北京二手笔记本','北京二手台式机/配件'])]
    #画图表
    charts.plot(series, show='inline', options = options )
    

    运行结果

    取2015年12月22日起1周:

    1.jpg

    取2015年12月29日起1周:

    2.jpg

    相关文章

      网友评论

          本文标题:Python实战计划学习笔记(15)7日发帖量图表呈现作业

          本文链接:https://www.haomeiwen.com/subject/fztuettx.html