基于VSC+pyQt5+mysql+python,本篇文件将介绍完整的二手房数据可视化项目,从登录界面到连接数据库在到主界面。

先看效果图

文章目录

  • 用到的工具与软件

    一、登录界面的制作

    完整的代码如下:

    第二个文件database.py

    第三个main.py文件也是启动整个项目的的文件

    二、主界面的创建

    1.首先在vsc中创建一个后缀为  名称.ui文件,然后点击edit in designer,在设计器里设计一个自己喜欢的界面(当然如果想白嫖,直接跳过看第二点:2.主界面样式)

    2.主界面样式

  • 总结

用到的工具与软件

VSC+pyQt5+mysql+python

vsc用的最新版本,python3.8.7,mysql用的8.0.1,pyqt5用的是最新版,直接默安装的,环境变量这些自己要配置好

一、登录界面的制作

大致界面如上图,有登录注册,注册点击register就可实现跳转到注册界面(因为懒,很多功能都没有去实现,如推特微信登录这些都没有去实现,),且窗口做了重定向,可以实现拖动.

完整的代码如下

 第一个文件dl.py文件

# -*- coding: utf-8 -*-# Form implementation generated from reading ui file '登陆2.ui'
#
# Created by: PyQt5 UI code generator 5.15.4
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.from PyQt5.QtWidgets import QApplication,QMainWindow,QMessageBox
import Ui_ershoufangzhujiem
from PyQt5 import QtCore, QtGui, QtWidgets
import sys,res
from dl_DataBase import *
import pymysql
import os
class Ui_Form(object):def setupUi(self, Form):Form.setObjectName("Form")Form.resize(749, 600)self.widget_3 = QtWidgets.QWidget(Form)self.widget_3.setGeometry(QtCore.QRect(40, 20, 651, 541))self.widget_3.setMouseTracking(False)self.widget_3.setObjectName("widget_3")self.widget = QtWidgets.QWidget(self.widget_3)self.widget.setGeometry(QtCore.QRect(30, 10, 550, 500))self.widget.setStyleSheet("QPushButton#pushButton{\n"
" background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(120, 38, 26, 150), stop:1 rgba(255, 255, 255, 255));\n"
" color:rgba(255,255,255,220);\n"
" border-radius:5px;\n"
"}\n"
"QPushButton#pushButton:hover{\n"
" background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(255, 255, 255, 255), stop:1 rgba(120, 38, 26,150));\n"
"}\n"
"QPushButton#pushButton:pressed{\n"
" padding-left:5px;\n"
" padding-top:5px;\n"
" background-color:rgba(120,38,26,255);\n"
"}\n"
"\n"
"QPushButton#pushButton_2,#pushButton_3,#pushButton_4,#pushButton_5{\n"
"  background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(255, 255, 255, 255), stop:1 rgba(222, 190, 167,150));\n"
" color:rgba(255,255,255,220);\n"
" border-radius:5px;\n"
"}\n"
"QPushButton#pushButton_2:hover,#pushButton_3:hover,#pushButton_4:hover,#pushButton_5:hover{\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(222, 190, 167,150), stop:1 rgba(255, 255, 255, 255));\n"
"}\n"
"\n"
"QPushButton#pushButton_2:pressed,#pushButton_3:pressed,#pushButton_4:pressed,#pushButton_5:pressed{\n"
" padding-left:5px;\n"
" padding-top:5px;\n"
" background-color:rgba(222,190,167,255);\n"
"}\n"
"")self.widget.setObjectName("widget")self.label = QtWidgets.QLabel(self.widget)self.label.setGeometry(QtCore.QRect(40, 30, 280, 430))self.label.setStyleSheet("border-image: url(:/images/敦煌.jpeg);\n"
"border-top-left-radius:50px;")self.label.setText("")self.label.setObjectName("label")self.label_2 = QtWidgets.QLabel(self.widget)self.label_2.setGeometry(QtCore.QRect(40, 30, 280, 430))self.label_2.setStyleSheet("background-color:rgba(0,0,0,80);\n"
"border-top-left-radius:50px;")self.label_2.setText("")self.label_2.setObjectName("label_2")self.label_3 = QtWidgets.QLabel(self.widget)self.label_3.setGeometry(QtCore.QRect(270, 30, 240, 430))self.label_3.setStyleSheet("background-color:rgba(255,255,255,255);\n"
"border-bottom-right-radius:50px;")self.label_3.setText("")self.label_3.setObjectName("label_3")self.lineEdit = QtWidgets.QLineEdit(self.widget)self.lineEdit.setGeometry(QtCore.QRect(295, 150, 190, 40))font = QtGui.QFont()font.setPointSize(12)self.lineEdit.setFont(font)self.lineEdit.setStyleSheet("background-color:rgba(0,0,0,0);\n"
"border:none;\n"
"border-bottom:2px solid rgba(120,38,26,200);\n"
"color:rgba(0,0,0,240);\n"
"padding-bottom:7px;")self.lineEdit.setObjectName("lineEdit")self.lineEdit_2 = QtWidgets.QLineEdit(self.widget)self.lineEdit_2.setGeometry(QtCore.QRect(295, 215, 190, 40))font = QtGui.QFont()font.setPointSize(12)self.lineEdit_2.setFont(font)self.lineEdit_2.setStyleSheet("background-color:rgba(0,0,0,0);\n"
"border:none;\n"
"border-bottom:2px solid rgba(120,38,26,200);\n"
"color:rgba(0,0,0,240);\n"
"padding-bottom:7px;")self.lineEdit_2.setEchoMode(QtWidgets.QLineEdit.Password)self.lineEdit_2.setObjectName("lineEdit_2")self.pushButton = QtWidgets.QPushButton(self.widget)self.pushButton.setGeometry(QtCore.QRect(295, 295, 190, 40))self.pushButton.setObjectName("pushButton")self.label_5 = QtWidgets.QLabel(self.widget)self.label_5.setGeometry(QtCore.QRect(290, 340, 210, 20))font = QtGui.QFont()font.setPointSize(8)self.label_5.setFont(font)self.label_5.setStyleSheet("color:rgba(0,0,0,210);\n"
"")self.label_5.setObjectName("label_5")self.horizontalLayoutWidget = QtWidgets.QWidget(self.widget)self.horizontalLayoutWidget.setGeometry(QtCore.QRect(310, 370, 160, 31))self.horizontalLayoutWidget.setObjectName("horizontalLayoutWidget")self.horizontalLayout = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget)self.horizontalLayout.setContentsMargins(0, 0, 0, 0)self.horizontalLayout.setSpacing(0)self.horizontalLayout.setObjectName("horizontalLayout")self.pushButton_2 = QtWidgets.QPushButton(self.horizontalLayoutWidget)self.pushButton_2.setMaximumSize(QtCore.QSize(30, 30))font = QtGui.QFont()font.setFamily("等线")font.setPointSize(15)self.pushButton_2.setFont(font)self.pushButton_2.setStyleSheet("border-image: url(:/images/twitter-circle-fill.png);")self.pushButton_2.setText("")self.pushButton_2.setObjectName("pushButton_2")self.horizontalLayout.addWidget(self.pushButton_2)self.pushButton_3 = QtWidgets.QPushButton(self.horizontalLayoutWidget)self.pushButton_3.setMaximumSize(QtCore.QSize(30, 30))font = QtGui.QFont()font.setFamily("等线")font.setPointSize(15)self.pushButton_3.setFont(font)self.pushButton_3.setStyleSheet("border-image: url(:/images/facebook_facebook52.png);")self.pushButton_3.setText("")self.pushButton_3.setObjectName("pushButton_3")self.horizontalLayout.addWidget(self.pushButton_3)self.pushButton_4 = QtWidgets.QPushButton(self.horizontalLayoutWidget)self.pushButton_4.setMaximumSize(QtCore.QSize(30, 30))font = QtGui.QFont()font.setFamily("等线")font.setPointSize(15)self.pushButton_4.setFont(font)self.pushButton_4.setStyleSheet("border-image: url(:/images/微信.png);")self.pushButton_4.setText("")self.pushButton_4.setObjectName("pushButton_4")self.horizontalLayout.addWidget(self.pushButton_4)self.pushButton_5 = QtWidgets.QPushButton(self.horizontalLayoutWidget)self.pushButton_5.setMaximumSize(QtCore.QSize(30, 30))font = QtGui.QFont()font.setFamily("等线")font.setPointSize(15)self.pushButton_5.setFont(font)self.pushButton_5.setStyleSheet("border-image: url(:/images/QQ-circle-fill.png);")self.pushButton_5.setText("")self.pushButton_5.setObjectName("pushButton_5")self.horizontalLayout.addWidget(self.pushButton_5)self.pushButton_6 = QtWidgets.QPushButton(self.widget)self.pushButton_6.setGeometry(QtCore.QRect(480, 40, 20, 20))self.pushButton_6.setStyleSheet("background-color: rgba(255,255,255,0)")self.pushButton_6.setText("")icon = QtGui.QIcon()icon.addPixmap(QtGui.QPixmap(":/images/叉叉.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)self.pushButton_6.setIcon(icon)self.pushButton_6.setObjectName("pushButton_6")self.pushButton_7 = QtWidgets.QPushButton(self.widget)self.pushButton_7.setGeometry(QtCore.QRect(450, 40, 20, 20))self.pushButton_7.setStyleSheet("background-color: rgba(255,255,255,0)")self.pushButton_7.setText("")icon1 = QtGui.QIcon()icon1.addPixmap(QtGui.QPixmap(":/images/缩小.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)self.pushButton_7.setIcon(icon1)self.pushButton_7.setObjectName("pushButton_7")self.pushButton_8 = QtWidgets.QPushButton(self.widget)self.pushButton_8.setGeometry(QtCore.QRect(320, 70, 121, 81))font = QtGui.QFont()font.setPointSize(20)font.setBold(True)font.setWeight(75)self.pushButton_8.setFont(font)self.pushButton_8.setStyleSheet("background-color: rgba(0,0,0,0)\n"
"")self.pushButton_8.setObjectName("pushButton_8")self.pushButton_9 = QtWidgets.QPushButton(self.widget)self.pushButton_9.setGeometry(QtCore.QRect(350, 400, 81, 23))font = QtGui.QFont()font.setFamily("Lucida Sans Typewriter")font.setPointSize(7)font.setBold(True)font.setItalic(True)font.setUnderline(True)font.setWeight(75)self.pushButton_9.setFont(font)self.pushButton_9.setStyleSheet("background-color: rgba(255,255,255,0);\n"
"")self.pushButton_9.setObjectName("pushButton_9")self.widget_2 = QtWidgets.QWidget(self.widget_3)self.widget_2.setGeometry(QtCore.QRect(250, 10, 361, 521))self.widget_2.setStyleSheet("QPushButton#pushButton_10{\n"
" background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(120, 38, 26, 150), stop:1 rgba(255, 255, 255, 255));\n"
" color:rgba(255,255,255,220);\n"
" border-radius:5px;\n"
"}\n"
"QPushButton#pushButton_10:hover{\n"
" background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(255, 255, 255, 255), stop:1 rgba(120, 38, 26,150));\n"
"}\n"
"QPushButton#pushButton_10:pressed{\n"
" padding-left:5px;\n"
" padding-top:5px;\n"
" background-color:rgba(120,38,26,255);\n"
"}")self.widget_2.setObjectName("widget_2")self.label_4 = QtWidgets.QLabel(self.widget_2)self.label_4.setGeometry(QtCore.QRect(50, 30, 240, 430))self.label_4.setStyleSheet("background-color:rgba(255,255,255,255);\n"
"border-bottom-right-radius:50px;")self.label_4.setText("")self.label_4.setObjectName("label_4")self.lineEdit_3 = QtWidgets.QLineEdit(self.widget_2)self.lineEdit_3.setGeometry(QtCore.QRect(70, 150, 190, 40))font = QtGui.QFont()font.setPointSize(12)self.lineEdit_3.setFont(font)self.lineEdit_3.setStyleSheet("background-color:rgba(0,0,0,0);\n"
"border:none;\n"
"border-bottom:2px solid rgba(120,38,26,200);\n"
"color:rgba(0,0,0,240);\n"
"padding-bottom:7px;")self.lineEdit_3.setObjectName("lineEdit_3")self.lineEdit_4 = QtWidgets.QLineEdit(self.widget_2)self.lineEdit_4.setGeometry(QtCore.QRect(70, 200, 190, 40))font = QtGui.QFont()font.setPointSize(12)self.lineEdit_4.setFont(font)self.lineEdit_4.setStyleSheet("background-color:rgba(0,0,0,0);\n"
"border:none;\n"
"border-bottom:2px solid rgba(120,38,26,200);\n"
"color:rgba(0,0,0,240);\n"
"padding-bottom:7px;")self.lineEdit_4.setEchoMode(QtWidgets.QLineEdit.Password)self.lineEdit_4.setObjectName("lineEdit_4")self.lineEdit_5 = QtWidgets.QLineEdit(self.widget_2)self.lineEdit_5.setGeometry(QtCore.QRect(70, 300, 190, 40))font = QtGui.QFont()font.setPointSize(12)self.lineEdit_5.setFont(font)self.lineEdit_5.setStyleSheet("background-color:rgba(0,0,0,0);\n"
"border:none;\n"
"border-bottom:2px solid rgba(120,38,26,200);\n"
"color:rgba(0,0,0,240);\n"
"padding-bottom:7px;")self.lineEdit_5.setObjectName("lineEdit_5")self.lineEdit_6 = QtWidgets.QLineEdit(self.widget_2)self.lineEdit_6.setGeometry(QtCore.QRect(70, 250, 190, 40))font = QtGui.QFont()font.setPointSize(12)self.lineEdit_6.setFont(font)self.lineEdit_6.setStyleSheet("background-color:rgba(0,0,0,0);\n"
"border:none;\n"
"border-bottom:2px solid rgba(120,38,26,200);\n"
"color:rgba(0,0,0,240);\n"
"padding-bottom:7px;")self.lineEdit_6.setEchoMode(QtWidgets.QLineEdit.Password)self.lineEdit_6.setObjectName("lineEdit_6")self.pushButton_10 = QtWidgets.QPushButton(self.widget_2)self.pushButton_10.setGeometry(QtCore.QRect(70, 380, 190, 40))self.pushButton_10.setObjectName("pushButton_10")self.pushButton_11 = QtWidgets.QPushButton(self.widget_2)self.pushButton_11.setGeometry(QtCore.QRect(100, 70, 140, 81))font = QtGui.QFont()font.setPointSize(20)font.setBold(True)font.setWeight(75)self.pushButton_11.setFont(font)self.pushButton_11.setStyleSheet("background-color: rgba(0,0,0,0)\n"
"")self.pushButton_11.setObjectName("pushButton_11")self.pushButton_12 = QtWidgets.QPushButton(self.widget_2)self.pushButton_12.setGeometry(QtCore.QRect(260, 40, 20, 20))self.pushButton_12.setStyleSheet("background-color: rgba(255,255,255,0)")self.pushButton_12.setText("")self.pushButton_12.setIcon(icon)self.pushButton_12.setObjectName("pushButton_12")self.pushButton_13 = QtWidgets.QPushButton(self.widget_2)self.pushButton_13.setGeometry(QtCore.QRect(230, 40, 20, 20))self.pushButton_13.setStyleSheet("background-color: rgba(255,255,255,0)")self.pushButton_13.setText("")self.pushButton_13.setIcon(icon1)self.pushButton_13.setObjectName("pushButton_13")self.label_4.raise_()self.lineEdit_3.raise_()self.lineEdit_4.raise_()self.lineEdit_5.raise_()self.lineEdit_6.raise_()self.pushButton_10.raise_()self.pushButton_11.raise_()self.pushButton_13.raise_()self.pushButton_12.raise_()self.widget_2.raise_()self.widget.raise_()self.retranslateUi(Form)self.pushButton_7.clicked.connect(Form.showMinimized)self.pushButton_6.clicked.connect(Form.close)self.pushButton_9.clicked.connect(self.widget_2.raise_)self.pushButton_12.clicked.connect(Form.close)self.pushButton_10.clicked.connect(self.widget.raise_)self.pushButton_13.clicked.connect(Form.showMinimized)QtCore.QMetaObject.connectSlotsByName(Form)Form.setTabOrder(self.lineEdit, self.lineEdit_2)Form.setTabOrder(self.lineEdit_2, self.pushButton)Form.setTabOrder(self.pushButton, self.pushButton_9)Form.setTabOrder(self.pushButton_9, self.lineEdit_3)Form.setTabOrder(self.lineEdit_3, self.lineEdit_4)Form.setTabOrder(self.lineEdit_4, self.lineEdit_6)Form.setTabOrder(self.lineEdit_6, self.lineEdit_5)Form.setTabOrder(self.lineEdit_5, self.pushButton_10)Form.setTabOrder(self.pushButton_10, self.pushButton_8)Form.setTabOrder(self.pushButton_8, self.pushButton_6)Form.setTabOrder(self.pushButton_6, self.pushButton_11)Form.setTabOrder(self.pushButton_11, self.pushButton_2)Form.setTabOrder(self.pushButton_2, self.pushButton_3)Form.setTabOrder(self.pushButton_3, self.pushButton_4)Form.setTabOrder(self.pushButton_4, self.pushButton_5)Form.setTabOrder(self.pushButton_5, self.pushButton_7)def retranslateUi(self, Form):_translate = QtCore.QCoreApplication.translateForm.setWindowTitle(_translate("Form", "Form"))self.lineEdit.setPlaceholderText(_translate("Form", "User Name"))self.lineEdit_2.setPlaceholderText(_translate("Form", "Password"))self.pushButton.setText(_translate("Form", "LOG In"))self.pushButton.clicked.connect(self.lg)self.label_5.setText(_translate("Form", "Forgot your User Name or password?"))self.pushButton_8.setText(_translate("Form", "LOG In"))self.pushButton_9.setText(_translate("Form", "register!"))self.lineEdit_3.setPlaceholderText(_translate("Form", "User Name"))self.lineEdit_4.setPlaceholderText(_translate("Form", "Password"))self.lineEdit_5.setPlaceholderText(_translate("Form", "E-mail"))self.lineEdit_6.setPlaceholderText(_translate("Form", "Reconfirm Password  "))self.pushButton_10.setText(_translate("Form", "Register"))self.pushButton_11.setText(_translate("Form", "Register"))
#连接数据库判断:def lg(self):user_name=self.lineEdit.text()user_passwd=self.lineEdit_2.text()sql="select * from user"user=Db_R(sql)for i in range(len(user)):if user['name'][i]==user_name and user['passwd'][i]==user_passwd:self.w=Ui_ershoufangzhujiem.loginWindow()m=Ui_ershoufangzhujiem.Ui_Form()m.setupUi(self.w)self.w.show()else:QMessageBox.critical(None,'警告','输入的用户名或密码错误',QMessageBox.Yes)

第二个文件database.py

import mysql.connector as ms    #导入链接mysql数据模块
import pandas as pd
import pymysql
pymysql.install_as_MySQLdb()
from sqlalchemy import create_engine  #写数据库
def Db_R(sql):db = pymysql.connect(host='localhost',    #主机名user='root',        #用户名passwd='asdfasd',        #密码db='www',        #数据库名称charset='utf8')cursor = db.cursor()    #创建游标# sql = "select * from user"    查询早已创建好的用户表df_sql = pd.read_sql(sql, db)cursor.close()    #关闭游标db.close()return df_sql
# def Db_T(df,b):

第三个main.py文件也是启动整个项目的的文件

from matplotlib.style import use
from pyparsing import dbl_slash_comment
from dl import *
import main_ershoufang
import sys
from PyQt5.QtWidgets import QApplication,QMainWindow
from dl_DataBase import *class loginWindow(QMainWindow):def __init__(self):super().__init__()self.ui=Ui_Form()self.ui.setupUi(self)self.setWindowFlags(QtCore.Qt.FramelessWindowHint)self.setAttribute(QtCore.Qt.WA_TranslucentBackground)self.show()def mousePressEvent(self, event):if event.button()==QtCore.Qt.LeftButton and self.isMaximized()==False:self.m_flag=Trueself.m_Position=event.globalPos()-self.pos() #获取鼠标相对窗口的位置event.accept()self.setCursor(QtGui.QCursor(QtCore.Qt.OpenHandCursor))  #更改鼠标图标def mouseMoveEvent(self, QMouseEvent):if QtCore.Qt.LeftButton and self.m_flag:  self.move(QMouseEvent.globalPos()-self.m_Position)#更改窗口位置QMouseEvent.accept()def mouseReleaseEvent(self, QMouseEvent):self.m_flag=Falseself.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))if __name__ == "__main__":app=QApplication(sys.argv)win=loginWindow()sys.exit(app.exec_())

上面就是整个登录界面的完整代码,只需要改改素材就可以,需要完整项目的我会放在文章后面

二、主界面的创建

1.首先在vsc中创建一个后缀为  名称.ui文件,然后点击edit in designer,在设计器里设计一个自己喜欢的界面(当然如果想白嫖,直接跳过看第二点:2.主界面样式)

如图1设计了一个翻译软件(会在另外的一篇文章介绍):

 2.主界面样式

这里也做了窗口的重定向显示,所以窗口可以拖动,这里的图形的数据几乎没有用到什么算法,所以需要自己去优化算法,这里只做了简单的显示

完整代码如下:

第一个UI_ershoufangzhujiem.py

# -*- coding: utf-8 -*-# Form implementation generated from reading ui file 'd:\python代码\爬虫\pyqt5作业\ershoufangzhujiem.ui'
#
# Created by: PyQt5 UI code generator 5.15.4
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.import matplotlib.pyplot as plt
import matplotlib
import pandas as pd
import time
from PyQt5.QtGui import QTextCursor
from PyQt5.QtCore import QObject, pyqtSignal, QEventLoop, QTimer
from PyQt5 import QtCore, QtGui, QtWidgets
import sys,res
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure
from PyQt5.QtWidgets import QApplication,QMainWindow
class loginWindow(QMainWindow):def __init__(self):super().__init__()self.ui=Ui_Form()self.ui.setupUi(self)self.setWindowFlags(QtCore.Qt.FramelessWindowHint)self.setAttribute(QtCore.Qt.WA_TranslucentBackground)self.show()def mousePressEvent(self, event):if event.button()==QtCore.Qt.LeftButton and self.isMaximized()==False:self.m_flag=Trueself.m_Position=event.globalPos()-self.pos() #获取鼠标相对窗口的位置event.accept()self.setCursor(QtGui.QCursor(QtCore.Qt.OpenHandCursor))  #更改鼠标图标def mouseMoveEvent(self, QMouseEvent):if QtCore.Qt.LeftButton and self.m_flag:  self.move(QMouseEvent.globalPos()-self.m_Position)#更改窗口位置QMouseEvent.accept()def mouseReleaseEvent(self, QMouseEvent):self.m_flag=Falseself.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))class MyFigure(FigureCanvas):def __init__(self, width=5, height=4, dpi=100):# 第一步:创建一个创建Figureself.fig = Figure(figsize=(width, height), dpi=dpi,facecolor='#FFFFFF',edgecolor='#FFFFFF')# 第二步:在父类中激活Figure窗口super(MyFigure, self).__init__(self.fig)  # 此句必不可少,否则不能显示图形
class Ui_Form(object):def setupUi(self, Form):Form.setObjectName("Form")Form.resize(1120, 720)self.widget = QtWidgets.QWidget(Form)self.widget.setGeometry(QtCore.QRect(0, 0, 1120, 720))self.widget.setStyleSheet("background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(255, 255, 255, 255), stop:1 rgba(255, 255, 255, 255));")self.widget.setObjectName("widget")self.label = QtWidgets.QLabel(self.widget)self.label.setGeometry(QtCore.QRect(0, 0, 1121, 51))self.label.setStyleSheet("border-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:1 rgba(0, 0, 0, 144));\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:1 rgba(0, 0, 0, 144));")self.label.setText("")self.label.setObjectName("label")self.pushButton = QtWidgets.QPushButton(self.widget)self.pushButton.setGeometry(QtCore.QRect(1050, 15, 20, 20))self.pushButton.setStyleSheet("background-color: rgba(255,255,255,0);\n"
"border-image: url(:/images/缩小.png);\n"
"")self.pushButton.setText("")self.pushButton.setObjectName("pushButton")self.pushButton_2 = QtWidgets.QPushButton(self.widget)self.pushButton_2.setGeometry(QtCore.QRect(1080, 15, 20, 20))self.pushButton_2.setStyleSheet("background-color: rgba(255,255,255,0);\n"
"border-image: url(:/images/叉叉.png);")self.pushButton_2.setText("")self.pushButton_2.setObjectName("pushButton_2")self.groupBox = QtWidgets.QGroupBox(self.widget)self.groupBox.setGeometry(QtCore.QRect(0, 70, 401, 291))self.groupBox.setTitle("")self.groupBox.setObjectName("groupBox")self.groupBox_2 = QtWidgets.QGroupBox(self.widget)self.groupBox_2.setGeometry(QtCore.QRect(420, 70, 401, 291))self.groupBox_2.setTitle("")self.groupBox_2.setObjectName("groupBox_2")self.groupBox_3 = QtWidgets.QGroupBox(self.widget)self.groupBox_3.setGeometry(QtCore.QRect(850, 60, 271, 641))self.groupBox_3.setTitle("")self.groupBox_3.setObjectName("groupBox_3")self.groupBox_4 = QtWidgets.QGroupBox(self.widget)self.groupBox_4.setGeometry(QtCore.QRect(0, 390, 821, 301))self.groupBox_4.setTitle("")self.groupBox_4.setObjectName("groupBox_4")self.retranslateUi(Form)self.pushButton_2.clicked['bool'].connect(Form.close)self.pushButton.clicked.connect(Form.showMinimized)self.ht_Tzxt()self.ht_zxt()self.ht_sdt()self.ht_zhexiantu()QtCore.QMetaObject.connectSlotsByName(Form)def retranslateUi(self, Form):_translate = QtCore.QCoreApplication.translateForm.setWindowTitle(_translate("Form", "Form"))def ht_Tzxt(self):matplotlib.rcParams['font.sans-serif'] = ['SimHei'] #设置字体为SimHei显示中文matplotlib.rcParams['axes.unicode_minus'] = False data=pd.read_csv('重庆链家二手房2.csv',encoding='utf-8')group=data.groupby(['lj_address_2'])average_nx_group = group['lj_house_total_price'].min()x=average_nx_group.index[:10]y=average_nx_group.values[:10]title='各地最低房价'F = MyFigure(10,10, 70)axes = F.fig.add_subplot(111)axes.spines['right'].set_color('none')axes.spines['top'].set_color('none')axes.barh(x, y, color='#00FF7F')#  设置坐标名称axes.set_ylabel("均价", color='y', rotation=0)axes.set_xlabel("地区", color='y')axes.patch.set_facecolor('#ffffFF')  # 统计图自身背景颜色for x, y in enumerate(y):axes.text(x, y + 1, y, ha='center')F.fig.suptitle("均价直方图", color='y')  # 标题QtWidgets.QGridLayout(self.groupBox).addWidget(F)self.groupBox.show()def ht_zxt(self):matplotlib.rcParams['font.sans-serif'] = ['SimHei'] #设置字体为SimHei显示中文matplotlib.rcParams['axes.unicode_minus'] = False data=pd.read_csv('重庆链家二手房2.csv',encoding='utf-8')group=data.groupby(['lj_address_2'])average_nx_group = group['lj_house_total_price'].min()x=average_nx_group.index[:10]y=average_nx_group.values[:10]title='各地最低房价'F = MyFigure(10,10, 70)axes = F.fig.add_subplot(111)axes.spines['right'].set_color('none')axes.spines['top'].set_color('none')axes.bar(x, y, color='#00FF7F')#  设置坐标名称axes.set_ylabel("均价", color='y', rotation=0)axes.set_xlabel("地区", color='y')axes.patch.set_facecolor('#ffffFF')  # 统计图自身背景颜色for x, y in enumerate(y):axes.text(x, y + 1, y, ha='center')F.fig.suptitle("均价直方图", color='y')  # 标题QtWidgets.QGridLayout(self.groupBox_2).addWidget(F)self.groupBox_2.show()   def ht_sdt(self):matplotlib.rcParams['font.sans-serif'] = ['SimHei'] #设置字体为SimHei显示中文matplotlib.rcParams['axes.unicode_minus'] = False data=pd.read_csv('重庆链家二手房2.csv',encoding='utf-8')F = MyFigure(10,10, 70)axes = F.fig.add_subplot(111)axes.spines['right'].set_color('none')axes.spines['top'].set_color('none')axes.scatter(data['lj_house_nx'][:30],data['lj_address_2'][:30],color='#87CEFA')F.fig.suptitle("散点图", color='y')  # 标题QtWidgets.QGridLayout(self.groupBox_3).addWidget(F)self.groupBox_3.show() def ht_zhexiantu(self):matplotlib.rcParams['font.sans-serif'] = ['SimHei'] #设置字体为SimHei显示中文matplotlib.rcParams['axes.unicode_minus'] = False data=pd.read_csv('重庆链家二手房2.csv',encoding='utf-8')F = MyFigure(10,10, 70)axes = F.fig.add_subplot(111)axes.spines['right'].set_color('none')axes.spines['top'].set_color('none')axes.plot(data['lj_house_nx'][:10],data['lj_address_2'][:10],color='#87CEFA')F.fig.suptitle("散点图", color='y')  # 标题QtWidgets.QGridLayout(self.groupBox_4).addWidget(F)self.groupBox_4.show()
import res

第二个:man_ershoufang.py文件。

from Ui_ershoufangzhujiem import *
import sys
from PyQt5.QtWidgets import QApplication,QMainWindow
if __name__ == "__main__":app=QApplication(sys.argv)win=loginWindow()sys.exit(app.exec_())

总结

到了这里整个项目都完整了,从登录界面到主界面,完整代码全在,想复制粘贴使用需要修改一些文件的路径,素材的路径,甚至换掉有的素材,在pyqt5里有一个   .qrc的素材文件,一定要import到自己的项目中,不然会报错,我的完整的项文件放到下面的连接中,也可直接私信我。(这里要感谢一些b站的一个up主C_Konchok根据他的作品来进行创作的,大家也可以去看看)

重庆链家二手房可视化项目压缩包-Python文档类资源-CSDN文库

pyqt5重庆连接二手房数据可视化完整项目相关推荐

  1. ajax将数据显示在class为content的标签中_[原创]数据可视化实战项目

    数据可视化实战项目 NLP 数据可视化 request BeautifulSoup #爬虫所需import requestsfrom bs4 import BeautifulSoup# Nlp可视化所 ...

  2. 数据可视化 数据可视化看板项目一:(1)模拟实时数据 -使用MYSQL的事件建立动态模拟数据,每秒更新一次 (1)

    需求: 市场人员进行数据可视化产品销售公关时,一定会遇到一个问题,就是客户要求进行展示. 但是我们不可能透露其它客户目前的真实实时更新的数据. 那么这里就要求,创建模拟的秒级别的数据. 方法: 1.使 ...

  3. 电商平台数据可视化Echarts-Vue项目综合练习(黑马pink老师)学习记录

    放假在家没事,跟着b站黑马前端课程手把手做了个电商平台数据可视化实时监控系统.老师课讲得非常好,几乎是保姆级别,对我这种小白非常友好.在这里记录一些自己遇到的问题,欢迎批评指正. 问题记录 1.ECh ...

  4. Django+Layui+Mysql数据可视化系统项目(三)

    Echarts图表的应用(联动和共享数据集) 解决数据可视化项目layui表格前后端处理增删改查的问题 一.前端(Layui)引用Table表格 使用静态数据展示,测试图表在前端的展示情况,调试布局情 ...

  5. Python爬虫 —3000+条北京二手房数据可视化分析

    关注公众号:[小张Python],为你准备了 50+ 本Python 精品电子书籍 与 50G + 优质视频学习资料,后台回复关键字:1024 即可获取:如果对博文内容有什么疑问,公众号后台添加作者[ ...

  6. 基于Python的南京二手房数据可视化分析

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...

  7. html实现数据分布,【数据可视化】项目分布地图设计之显示省份地图

    实现效果 项目分布地图效果 鼠标悬停效果 需求分析 显示陕西省省份地图 显示地市的名称 根据项目数量,动态调整气球浮标的大小 准备步骤 下载echarts,官网下载 下载echarts中的省份信息,可 ...

  8. 【数据可视化】项目分布地图设计之显示省份地图

    实现效果 项目分布地图效果 鼠标悬停效果 需求分析 显示陕西省省份地图 显示地市的名称 根据项目数量,动态调整气球浮标的大小 准备步骤 下载echarts,官网下载 下载echarts中的省份信息,可 ...

  9. Tableau 数据可视化之项目二 网站用户访问行为分析

    项目背景及需求分析 详细设计 原型效果 训练技能点 原始数据 具体实现 页面查看视图 媒介查看视图及多维度查看 用户访问量视图 生成仪表板 项目总结

最新文章

  1. Element-ui表格选中回显
  2. 【星辰傀儡线·命运环·卷二 尘埃】 5 困惑
  3. 2、程序包 Packages
  4. python批量合并csv_Python合并多个csv文件
  5. python结束if else_python | if else || where true 流程控制
  6. 昆明大专学计算机,昆明冶金高等专科学校2020年云南省高等教育招收中等职业学校学生 (计算机类)考试大纲...
  7. 拆解飞机黑匣子,看看内部构造、PCB及芯片
  8. mysql一个事务多个log_MySQL识别一个binlog中的一个事物
  9. 电脑屏保海底世界_世界上最后一个深海实验室,隐藏了人类未来的秘密
  10. 在pycharm中使用docker安装的python3作为运行环境
  11. 用Maven创建第一个web项目Struts2项目
  12. 关于数据准备时,自动棌番的主键,这一字段数据的注意(IT总结之五)
  13. 剑指offer——面试题22:栈的压入、弹出序列
  14. 【机器学习】如何处理数据不均衡问题
  15. Grouping BP has not been assigned to any customer accounts groupMessage no. FSBP_ECC004
  16. 95%以上的日常办事启用电子签章,你都体验过哪些?
  17. 购房税费计算技术支持
  18. 鼎捷t100架构_新合发集团借助鼎捷T100信息化全面升级!
  19. Day020 - pdf合并与excel/csv读取写入
  20. colormap保存 matlab_matlab的colormap的保存

热门文章

  1. Java正在卷土重来?别开玩笑了,它明明一直很火
  2. java 装箱 拆箱的作用_Java中的装箱拆箱
  3. 火山PC调用易语言的能力实现禁止软件重复运行
  4. 51单片机模数转换A/D与数模转换D/A
  5. 模数转换器(ADC)的两种架构:SAR和Σ-Δ
  6. 什么叫小助手(智能机器人)!
  7. Spring Data JPA多表查询
  8. 拼多多携手渭南邮政,开辟农产品上行极速通道
  9. 本地连接已经连接,但是有发送包却没有接收包的故障处理
  10. Arduino FT232R USB UART 驱动问题解决办法