def evaluation_chart(self): # 销量榜数据表名称 sales_volume_rankings_table_name = 'sales_volume_rankings' # 热评榜数据表名称 heat_rankings_table_name = 'heat_rankings' # 创建自定义数据库对象 mysql = MySQL() # 创建爬去对象 mycrawl = Crawl() # 连接数据库 sql = mysql.connection_sql() # 创建游标 cur = sql.cursor() good_rate_list = [] # 好评率列表 # 查询关注图书的信息,中的京东id attention_message = mysql.query_attention(cur, 'jd_id,book_name', sales_volume_rankings_table_name, "attention = '1'") for i in range(len(attention_message)): # 获取好评率与评价时间 good_rate,time = mycrawl.get_evaluation(0, attention_message[i][0]) # 将关注的商品名称与好评率添加至列表当中 good_rate_list.append((attention_message[i][1], good_rate)) # 关注的第一个商品 if i == 0: plt1 = PlotCanvas() # 创建如表画布类对象 # 显示评价分析图 plt1.pie_chart(good_rate_list[0][1], (100 - good_rate_list[0][1]), good_rate_list[0][0]) # 将评价分析图添加至布局中 self.horizontalLayout_0.addWidget(plt1) # 关注的第二个商品 if i == 1: plt2 = PlotCanvas() plt2.pie_chart(good_rate_list[1][1], (100 - good_rate_list[1][1]), good_rate_list[1][0]) self.horizontalLayout_1.addWidget(plt2) # 关注的第三个商品 if i == 2: plt3 =PlotCanvas() plt3.pie_chart(good_rate_list[2][1], (100 - good_rate_list[2][1]),good_rate_list[2][0]) self.horizontalLayout_2.addWidget(plt3) mysql.close_sql() # 关闭数据库
def evaluation_chart(self): # 销量榜数据表名称 sales_volume_rankings_table_name = 'sales_volume_rankings' # 创建自定义数据库对象 mysql = MySQL() # 连接数据库 sql = mysql.connection_sql() # 创建游标 cur = sql.cursor() # 获取关注商品的出版社名称与图书名称 attention_message = mysql.query_attention( cur, 'press,book_name', sales_volume_rankings_table_name, "attention = '1'") for i in range(len(attention_message)): query_sql = "select press,count(*) from sales_volume_rankings " \ "group by press having press = '{name}'".\ format(name =attention_message[i][0]) # 查询关注商品出版社占有比例 number, press = mysql.query_press_proportion(cur, query_sql) # 计算其它比例并添加至列表中 number.append((100 - number[0])) press.append('其它') # 关注的第一个商品 if i == 0: plt1 = PlotCanvas() # 创建如表画布类对象 # 显示出版社占有比例图 plt1.bar(number, press, attention_message[i][1]) # 将出版社占有比例图添加至布局中 self.horizontalLayout_0.addWidget(plt1) # 关注的第二个商品 if i == 1: plt2 = PlotCanvas() plt2.bar(number, press, attention_message[i][1]) self.horizontalLayout_1.addWidget(plt2) # 关注的第三个商品 if i == 2: plt3 = PlotCanvas() plt3.bar(number, press, attention_message[i][1]) self.horizontalLayout_2.addWidget(plt3) mysql.close_sql() #关闭数据库
def __init__(self): super(About_Window, self).__init__() self.setupUi(self) # 打开窗体 def open(self): self.show() if __name__ == "__main__": # 创建自定义数据库对象 mysql = MySQL() # 创建爬去对象 mycrawl = Crawl() # 连接数据库 sql = mysql.connection_sql() # 创建游标 cur = sql.cursor() app = QApplication(sys.argv) # 主窗体对象 main = Main() # 显示主窗体 main.show() # 销量排行窗体对象 sales = Sales() # 热评排行窗体对象 heat = Heat() # 关注窗体对象 attention = Attention()