“希希敬敬对”团队作业——敏捷冲刺6

1“希希敬敬对”百度贴吧小爬虫任务计划:

   龙江腾(队长) 201810775001

完成爬下的发帖主题人信息进行图形化显示的review,明天完成程序生成exe文件,程序生成apk文件的review,程序贴吧推广使用的review。

   杨希                   201810812008

完成爬下的发帖主题人信息进行图形化显示,明天完成程序生成exe文件的review,程序生成apk文件,程序贴吧推广使用的review。

  何敬上     201810812004

完成爬下的发帖主题人信息进行图形化显示review,明天完成程序生成exe文件的review,程序生成apk文件的review,程序贴吧推广使用。

2今天讨论照片:

3遇到的问题:

暂无

4程序代码

import matplotlib.pyplot as plt
import matplotlib
import numpy as np
from tkinter import *
from matplotlib.pylab import mpl
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg     #NavigationToolbar2TkAgg
from matplotlib.figure import Figure

class Creat_form():
    def __init__(self, school, anchors):
        self.root = Tk()                #创建主窗体
        self.root.title("百度贴吧数据小爬虫")
        self.root.geometry('1000x600')  # 是x 不是*

        self.canvas = Canvas()          #创建一块显示图形的画布
        self.figure = self.create_matplotlib(school, anchors)       #返回matplotlib所画图形的figure对象
        self.create_form(self.figure)               #将figure显示在tkinter窗体上面
        self.root.mainloop()

    def create_matplotlib(self, school, anchors):
        # 设置中文字体正常显示
        plt.rcParams['font.sans-serif'] = ['SimHei']
        # 设置负号正常显示
        plt.rcParams['axes.unicode_minus'] = False

        f = plt.figure(num = 2, figsize=(10,6),dpi=80, frameon = True)  #创建绘图对象f
        fig1 = plt.subplot(1,1,1)               #创建一个子图

        font1 = {'weight': 'normal',
                 'size': 18,
                 }
        # 条形图标题设置
        plt.title(school + "吧前10页主题作者发帖回复总数排行榜",font1)
        # 设置X,Y轴标签
        font2 = {'weight': 'normal',
                 'size': 14,
                 }
        plt.xlabel("主题作者",font2)
        plt.ylabel("回复总数",font2)
        # 横、纵坐标刻度显示值
        row_list = []
        col_list = []
        for kv in anchors:
            row_list.append(kv['name'])
            col_list.append(kv['number'])
        # print(row_list)
        # print(col_list)

        # row_list = ['七七', '火星', 'later', 'maybe','like','science']
        # col_list = [15, 20, 30, 45, 60, 70]

        # 绘制条形图
        # height:长条形的高度
        # width:长条形宽度,默认值0.8
        x = range(len(col_list))
        rects = plt.bar(x, height=col_list, width=0.2, alpha=0.8, color='blue')
        # 设置y轴的取值范围
        plt.ylim(0, 15000)
        # 设置X轴刻度显示值(参数一:中点坐标,参数二:显示值)
        plt.tick_params(labelsize = 12)
        plt.xticks([index for index in x], row_list,rotation = 40)
        #绘制条形图上的数据标签
        for rect in rects:
            height = rect.get_height()
            plt.text(rect.get_x() + rect.get_width() / 2, height + 1 ,
                     str(height) , ha = "center", va = "bottom")

        plt.show()
        return f

    def create_form(self, figure):
        #把绘制的图形显示到tkinter窗口上
        self.canvas = FigureCanvasTkAgg(figure, self.root)
        self.canvas.draw()
        self.canvas.get_tk_widget().place(relx = 0.12,rely = 0.12)

5生成结果

posted @ 2018-11-29 15:57  小莜上  阅读(190)  评论(0编辑  收藏  举报