• “希希敬敬对”团队作业——敏捷冲刺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:长条形的高度
            # 长条形宽度,默认值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生成结果

  • 相关阅读:
    【内推面试分享】普通本科的蚂蚁金服校招面试经验分享,内附答案
    Json解析
    创建新的MessageBox窗口前,先关掉之前已经创建好的
    TcxCheckComboBox的使用
    Delphi调用C#的DLL
    StringGrid数据导出到Excel
    从Excel导入信息在StringGrid显示
    JS的修饰符
    局部变量和全局变量
    List注意啊
  • 原文地址:https://www.cnblogs.com/xiaoyoushang/p/10038867.html
Copyright © 2020-2023  润新知