Python项目之中国数据可视化

用Python采集电商平台商品数据进行可视化分析 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 阅读详情


关键词

  • Python
  • Django
  • Python网络爬虫
  • echarts可视化
  • 阅读者(Python基础、Django基础、H5基础)

一、做什么

国家数据十年数据
教育、文化、体育、财政…

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、怎么做

1、获取数据&&处理数据

分析网页数据 | 接口

  • 接口
  • 未加密

在这里插入图片描述
在这里插入图片描述

通过构造请求即可获取数据

import requests

url = "https://data.stats.gov.cn/easyquery.htm?m=QueryData&dbcode=hgnd&rowcode=zb&colcode=sj&wds=%5B%5D&dfwds=%5B%7B%22wdcode%22%3A%22zb%22%2C%22valuecode%22%3A%22A0M0101%22%7D%5D&k1=1681802150380&h=1"

payload={}
headers = {
  'Accept': 'application/json, text/javascript, */*; q=0.01',
  'Accept-Language': 'en,zh-CN;q=0.9,zh;q=0.8',
  'Cache-Control': 'no-cache',
  'Connection': 'keep-alive',
  'Cookie': '_trs_uv=lb3ivyja_6_9rxg; wzws_sessionid=gWQ5YzU0NIAyNDA5OjhhMzg6YzBhOjU3Yjg6NDA3Ojk4OTc6ZmJkZTpkODE1oGQ+OquCZmM1ZWUx; u=6; JSESSIONID=nhaTNEtX-UbYOP07UUOERWA20RlZhKPfyIJOXPgdpF5X26gOalzB!1171792879',
  'Pragma': 'no-cache',
  'Referer': 'https://data.stats.gov.cn/easyquery.htm?cn=C01',
  'Sec-Fetch-Dest': 'empty',
  'Sec-Fetch-Mode': 'cors',
  'Sec-Fetch-Site': 'same-origin',
  'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36',
  'X-Requested-With': 'XMLHttpRequest',
  'sec-ch-ua': '"Chromium";v="112", "Google Chrome";v="112", "Not:A-Brand";v="99"',
  'sec-ch-ua-mobile': '?0',
  'sec-ch-ua-platform': '"Windows"'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)

在这里插入图片描述

处理response
我们要获取的数据有
datanodes[i].data.data 年度数据
wdnodes[i].nodes.cname 数据名称
wdnodes[i].nodes.unit 单位

# 文件名称  get_national_data.py
# -*- encoding:utf-8 -*-
__author__ = "Nick"
__created_date__ = "2023/04/18"


import requests
import json
import pymysql
import time

import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)# 忽视ignore错误

import random

headers = {
    'Accept': 'application/json, text/javascript, */*; q=0.01',
    'Cookie': '_trs_uv=lb3ivyja_6_9rxg; wzws_sessionid=gTc5MmRlNaBjiV2ZgmZjNWVlMYAyNDA5OjhhMzg6YzBhOmNlNDE6NDA3Ojk4OTc6ZmJkZTpkODE1; u=2; JSESSIONID=JdPTM5JOti-gtAt3y4OxewoNkDOizREzxPdkiYzr1HkaEoOXtsDc!2123879546',
    'Pragma': 'no-cache',
    'Referer': 'https://data.stats.gov.cn/easyquery.htm?cn=C01',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36',
    'X-Requested-With': 'XMLHttpRequest',
}


# 获取国家统计局数据
class Get_national_data():

    def __init__(self,url,fld,sld_name):
        """
        @param url 请求url
        @param fld 一级目录缩写
        @param sld 二级目录category_name_two缩写
        """
        # 数据接口url
        self.url = url
        # 一级目录
        self.fid = fld
        # 二级目录
        self.sld_name = sld_name

    def get_request(self):
        """
        发起请求
        """
        payload = {}
        # 国家统计局证书已过期,verify=False
        time.sleep(3)
        r = requests.request("GET", url=self.url, headers=headers, data=payload, verify=False)
        r.encoding = "utf-8"
        res = json.loads(r.text.encode("utf-8"))
        self.res = res

    def count_cname(self):
        """
        统计二级目录下指标数量
        @return 二级目录下指标个数
        """
        # 获取单位
        unit = self.res["returndata"]["wdnodes"][0]["nodes"][0]["unit"]
        self.unit = unit
        names_list = self.res["returndata"]["wdnodes"][0]["nodes"]
        index_name = []
        for name in names_list:
            _name = name["name"]
            index_name.append(_name)
        return len(index_name)

    def get_original_data_name(self):
        """
        获取二级目录下的指标名称
        通过 yield 函数每次获取一个名称
        """
        # 二级目下具体指标name获取
        names_list = self.res["returndata"]["wdnodes"][0]["nodes"]
        index_name = []
        for name in names_list:
            _name = name["name"]
            index_name.append(_name)
            if len(index_name) == 1:
                yield index_name
                index_name = []

    def get_original_data(self):
        """
        获取二级目录下具体的数据
        通过yield 每次获取取10个值
        """
        # 数据获取
        data_list = self.res["returndata"]["datanodes"]
        # 定义存储容器
        process_data = []
        for data in data_list:
            info = data["data"]["data"]
            process_data.append(info)
            if len(process_data) == 10:
                # 迭代器,一次获取10数据
                yield process_data
                process_data = []

    def get_data_10(self, data, data_name):
        """
        获取一组值
        @param data get_original_data实例化获取
        @param data_name get_original_data_name 实例化获取
        @return 返回一组数据,元祖类型
        """
        # cname获取
        cname = data_name.__next__()[0]
        self.cname = cname
        # 查询name
        self.select_cname_id()
        # 十条数据获取
        last_data = data.__next__()
        # 添加cname
        last_data.insert(0,cname)
        # 添加一级、二级目录
        last_data.extend([self.unit, self.fid , self.sid_id])
        return tuple(last_data)

    def connect_db(self):
        """
        连接数据库
        @return 数据库实例化
        """
        connect = pymysql.connect(
            host="localhost",
            port=3306,
            user='root',
            password='rootroot',
            database='tenchina'
        )
        return connect

    # 查询SQL
    def select_cname_id(self):
        # 查询cname的id
        connect = self.connect_db()
        # 实例化
        cursor = connect.cursor()
        # 查询
        try:
            sql_id = f"""
            select id from tb_category_two where category_name_two = {self.sld_name}
            """
            cursor.execute(sql_id)
            result = cursor.fetchone()
            connect.commit()
            connect.close()
            self.sid_id = result[0]
        except Exception as e:
            print(e)

   

if __name__ == '__main__':
   pass



2、数据库设计&&存储数据

Django中通过model.py定义数据字段即可完成表的设计

from django.db import models

# Create your models here.


"""
建立三张表
1、tb_category_one 一级目录表
2、tb_category_two 二级目录表
3、数据表 
"""

# 分类表、一级目录
class category_one(models.Model):
    # 分类名称(教育、文化、体育等)
    category_name = models.CharField(max_length=10)
    # 数据库表名为t_category
    class Meta:
        db_table = "tb_category_one"

# 分类表、二级目录
class category_two(models.Model):
    # 分类名称-教育(各级学校数)、-文化(博物馆)
    category_name_two = models.CharField(max_length=40)
    # 建立一对多的关系
    specific = models.ForeignKey(to=category_one,related_name="specific", on_delete=models.CASCADE)
    # 数据库表名
    class Meta:
        db_table = "tb_category_two"


class detail(models.Model):
    # 分类具体名称
    name = models.CharField(max_length=30)
    # 年度2021
    year_2021 = models.DecimalField(max_digits=12,decimal_places=4,null=True)
    # 年度2020
    year_2020 = models.DecimalField(max_digits=12,decimal_places=4,null=True)
    # 年度2019
    year_2019 = models.DecimalField(max_digits=12,decimal_places=4,null=True)
    # 年度2018
    year_2018 = models.DecimalField(max_digits=12,decimal_places=4,null=True)
    # 年度2017
    year_2017 = models.DecimalField(max_digits=12,decimal_places=4,null=True)
    # 年度2016
    year_2016 = models.DecimalField(max_digits=12,decimal_places=4,null=True)
    # 年度2015
    year_2015 = models.DecimalField(max_digits=12,decimal_places=4,null=True)
    # 年度2014
    year_2014 = models.DecimalField(max_digits=12,decimal_places=4,null=True)
    # 年度2013
    year_2013 = models.DecimalField(max_digits=12,decimal_places=4,null=True)
    # 年度2012
    year_2012 = models.DecimalField(max_digits=12,decimal_places=4,null=True)
    # 单位
    unit = models.CharField(max_length=10)
    # 建立一对多的关系
    category_1 = models.ForeignKey(to=category_one,related_name="category_list_1",on_delete=models.CASCADE)
    # 建立一对多的关系
    category_2 = models.ForeignKey(to=category_two, related_name="category_list_2", on_delete=models.CASCADE)
    # 数据库表名为t_detail
    class Meta:
        db_table = "tb_detail"

数据迁移
记得setting.py配置MySQL数据库,并新建相关数据库
python manage.py makemigrations
python manage.py migrate

3、开发后端接口

1、view.py 编写视图函数
2、url.py 定义相关路由

# 分离SQL语句
def create_sql(table_name,category_id):
    _sql = f"select DISTINCT id,name,year_2021,year_2020,year_2019,year_2018,year_2017,year_2016,year_2015,year_2014,year_2013,year_2012,unit from {table_name} where category_2_id = {category_id} LIMIT 6;"
    return _sql
# 教育模块
def education_select(request,num):
    """
    @param request:
    @param num: 1-各级各类学校数处理、2-各级各类学校专任教师数处理、3-各级各类学校毕业生数处理、4-研究生和留学生数处理
    @return:Json数据,Echarts拿到数据回显
    """
    # 定义十年数据
    data = ['2021', '2020', '2019', '2018', '2017', '2016', '2015', '2014', '2013', '2012']
    # 定义index_list存储index_name(普通学校数、普通中学数、普通高中学校数等)
    index_list = []
    # 接口返回特定格式的数据
    series_list = []
    # data_2021-2012
    data_2021 = []
    data_2020 = []
    data_2019 = []
    data_2018= []
    data_2017 = []
    data_2016 = []
    data_2015 = []
    data_2014 = []
    data_2013 = []
    data_2012 = []
    if num == "1":
        sql = create_sql(table_name="tb_detail",category_id=1)
    elif num == "2":
        sql = create_sql(table_name="tb_detail",category_id=2)
    elif num == "3":
        sql = create_sql(table_name="tb_detail", category_id=5)
    elif num == "4":
        sql = create_sql(table_name="tb_detail", category_id=6)
    # 原生查询
    ret = detail.objects.raw(sql)
    for item in ret:
        index_list.append(item.name)
        data_2021.append(item.year_2021)
        data_2020.append(item.year_2020)
        data_2019.append(item.year_2019)
        data_2018.append(item.year_2018)
        data_2017.append(item.year_2017)
        data_2016.append(item.year_2016)
        data_2015.append(item.year_2015)
        data_2014.append(item.year_2014)
        data_2013.append(item.year_2013)
        data_2012.append(item.year_2012)
    #构建2021-2012
    for i in range(21, 11, -1):
        year = f"20{i}"
        series_dict = {
            'name': year,
            'type': 'line',
            'stack': 'Total',
            'data': ''
        }
        if year == "2021":
            series_dict["data"] = data_2021
        elif year == "2020":
            series_dict["data"] = data_2020
        elif year == "2019":
            series_dict["data"] = data_2019
        elif year == "2018":
            series_dict["data"] = data_2018
        elif year == "2017":
            series_dict["data"] = data_2017
        elif year == "2016":
            series_dict["data"] = data_2016
        elif year == "2015":
            series_dict["data"] = data_2015
        elif year == "2014":
            series_dict["data"] = data_2014
        elif year == "2013":
            series_dict["data"] = data_2013
        elif year == "2012":
            series_dict["data"] = data_2012
        else:
            pass
        if num == "1":
            # 各级各类学校数
            pass
        elif num == "2":
            # 各级各类学校专任教师数
            focus ={"focus": 'series'}
            series_dict["emphasis"] = focus
            series_dict["areaStyle"] = "{}"
        elif num == "3":
            series_dict["type"] = "bar"
            focus = {"focus": 'series'}
            series_dict["emphasis"] = focus
            series_dict["stack"] = 'Ad'
        elif num == "4":
            series_dict["type"] = 'bar'
            show ={"show": "true"}
            series_dict["label"] = show
        series_list.append(series_dict)
    # 最后返回的数据格式
    result = {
        "status": True,
        "data":{
        "legend": data,
        "xAxis": index_list,
        "series_list": series_list,
    }
    }
    return JsonResponse(result)


def chart_three(request):
    """
    各级各类学校招生数
    @param request:
    @return: Json数据,Echarts拿到数据回显
    """
    # 定义格式
    source = []
    data = ['year', '2021', '2020', '2019', '2018', '2017','2016', '2015', '2014', '2013','2012']
    source.append(data)
    # 查询
    sql = create_sql(table_name="tb_detail", category_id=3)
    # 原生查询
    ret = detail.objects.raw(sql)
    for item in ret:
        data_list = []
        data_list.extend([item.name,item.year_2021,item.year_2020,item.year_2019,
                         item.year_2018,item.year_2017,item.year_2016,item.year_2015,
                         item.year_2014,item.year_2013,item.year_2012])
        source.append(data_list)

    # 最后返回的数据格式
    result = {
        "status": True,
        "data": source
    }
    return JsonResponse(result)


def chart_four(request):
    """
    各级各类学校在校学生数
    @param request:
    @return:Json数据,Echarts拿到数据回显
    """
    # 定义格式
    dataset = {}
    # 年限定义
    dataset["dimensions"] = ['product', '2021', '2020', '2019', '2018', '2017','2016']
    #
    source_list = []
    # 查询
    sql = create_sql(table_name="tb_detail", category_id=4)
    # 原生查询
    ret = detail.objects.raw(sql)
    for item in ret:
        # 把数据为空的剔除
        if item.year_2021:
            source_dict = {}
            source_dict["product"] = item.name
            source_dict["2021"] = item.year_2021
            source_dict["2020"] = item.year_2020
            source_dict["2019"] = item.year_2019
            source_dict["2018"] = item.year_2018
            source_dict["2017"] = item.year_2017
            source_dict["2016"] = item.year_2016
            source_list.append(source_dict)
    dataset["source"] = source_list
    result = {
        "status": True,
        "data": dataset
    }
    return JsonResponse(result)

from django.urls import path,re_path



from . import views as v

urlpatterns = [
    # 教育模块
    # path('/educate',v.education_select),
    re_path(r'^educate/(\d+)$',v.education_select),
    path('educate/chart3',v.chart_three),
    path('educate/chart4',v.chart_four),
    # 文化模块
    re_path(r'^culture/(\d+)$',v.culture_select),
    path('culture/chart3',v.chart_three_culture),
    path('culture/chart4',v.chart_four_culture),
    # 体育模块
    re_path(r'^pe/(\d+)$',v.pe_select),
    path('pe/chart3',v.chart_three_pe),
    path('pe/chart4',v.chart_four_pe),

]

4、前端页面编写

省略相关js、css文件,见代码仓库
base.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <link rel="stylesheet" href="../static/css/main.css" />
    <title>{{ title }}</title>
  </head>
  <body>
    <div class="nav_menu w">
	          <div class="menu_item">
	              <div class="home">教育</div>
	              <div class="web_home"><a href="http://127.0.0.1:8000/index">教育首页</a></div>
	          </div>
	          <div class="menu_item">
	              <div class="home">文化</div>
	              <div class="web_home"><a href="http://127.0.0.1:8000/culture">文化首页</a></div>
	          </div>
	          <div class="menu_item">
	              <div class="home">体育</div>
	              <div class="web_home"><a href="http://127.0.0.1:8000/pe">体育首页</a></div>
	          </div>
	          <div class="menu_item">
	              <div class="home">财政</div>
	              <div class="web_home"><a href="#">财政首页</a></div>
	          </div>
	          <div class="menu_item">
	              <div class="home">人民生活</div>
	              <div class="web_home"><a href="#">人民生活</a></div>
	          </div>
	          <div class="menu_item">
	              <div class="home">科技</div>
	              <div class="web_home"><a href="#">科技首页</a></div>
	          </div>
			  <div class="menu_item">
			      <div class="home">卫生</div>
			      <div class="web_home"><a href="#">卫生首页</a></div>
			  </div>
			  <div class="menu_item">
			      <div class="home">社会</div>
			      <div class="web_home">社会首页</div>
			  </div>
	      </div>
    <nav class="menu">
      <ol>
        <li id="content1" class="menu-item active">
          <a href="javascript:void(0);">{{ category_content.0}}</a>
        </li>
        <li id="content2" class="menu-item">
          <a href="javascript:void(0);">{{category_content.1 }}</a>
        </li>
        <li id="content3" class="menu-item">
          <a href="javascript:void(0);">{{category_content.2 }}</a>
        </li>
        <li id="content4" class="menu-item">
          <a href="javascript:void(0);">{{ category_content.3 }}</a>
        </li>
        <li id="content5" class="menu-item">
          <a href="javascript:void(0);">{{category_content.4 }}</a>
        </li>
        <li id="content6" class="menu-item">
          <a href="javascript:void(0);">{{ category_content.5 }}</a>
        </li>
      </ol>
    </nav>

    <div class="container-div">
	  <!-- 各级各类学校 -->
	  <div class="text content1" id="container"></div>
	  <!-- 各级各类学校专任教师数 -->
      <div class="text content2" id= "container1"></div>
	  <!-- 各级各类学校招生数 -->
      <div class="text content3" id ="container2"></div>
	  <!-- 各级各类学校在校学生数 -->
      <div class="text content4" id="container3"></div>
	  <!-- 各级各类学校毕业生数 -->
      <div class="text content5" id = "container4"></div>
	  <!-- 研究生和留学生数 -->
      <div class="text content6" id="container5"></div>
    </div>
    <script src="https://www.jq22.com/jquery/jquery-1.10.2.js"></script>
    {% block tojs %}

    {% endblock %}


	<script type="text/javascript" src="https://fastly.jsdelivr.net/npm/echarts@5.4.0/dist/echarts.min.js"></script>
  </body>
</html>

educate.html

{% extends "base.html" %}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>

    {% block tojs %}
    <script src="../static/js/index.js"></script>
    {% endblock %}



</body>
</html>

三、效果展示

在这里插入图片描述

四、总结

  • 过于混杂(之后会进行改造)
  • 数据分析过于单一(数据可视化为的是更好的展示结论)

[gitee]
https://gitee.com/nickwang666/visual-ten-china

在这里插入图片描述

python数据可视化项目设计-中国人口 基于python,关于中国人口的数据可视化。 阅读详情

相关推荐

Python中国官方网 - Python官方网站

Python中国官方网(Python官网)是Python编程语言的权威网站,为开发者和初学者提供了丰富的资源和支持。通过官网,用户可以下载和安装最新的Python版本,学习Python的文档与教程,并加入Python社区与其他开发者交流与分享。Python中国官方网(Python官网)是Python编程语言的权威网站,为开发者和初学者提供了丰富的资源和支持。除了上述提到的功能,Python官网还提供了其他有用的资源,如Python软件包索引(PyPI)、Python标准库和第三方库的文档等。

CyberLynxX的博客 3494

Python之数据可视化(地图)

运用Python实现数据的可视化

没技术的博客 8357

python实现中国地图可视化 (附完整源码)

python实现中国地图可视化 (附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1391

Python入门学习总结

从开始学习第二关python入门,断断续续已经两个月了,对完全没学过计算机编程语言的我来说,可谓是硬着头皮一点一点的摸索过来,中间也想放弃,问自己为什么会选择python,是不是头脑一热跟风而已?终于在菜鸟教程看完了一边教程,也模仿着敲了几遍代码,到头来总结的时候才有了整体的框架思维。也算有点头绪。

weixin_55154866的博客 568

基于Python的中国城市轨道交通数据可视化分析实战项目

轨道交通系统的物理规模通常由三个基本指标构成:线路总数、运营总里程和车站总数。其中,线路数量反映网络拓扑结构的复杂程度,直接影响乘客换乘频率与出行路径选择;总里程则直接体现基础设施投入强度,常作为衡量城市发展能级的重要代理变量;而车站密度(单位面积内的站点数)更能反映服务覆盖精细度,尤其在高密度城区尤为重要。除此之外,还需引入衍生指标增强解释力。例如:平均站间距= 总里程 / (车站总数 - 线路数)

weixin_31419153的博客 1184

基于Python爬虫的中国疫情数据可视化分析实战项目(初学者练习)

随着新冠疫情在全球持续蔓延,及时获取并分析疫情数据对公共卫生决策和公众知情权至关重要。Python凭借其强大的生态系统,成为实现疫情数据采集与可视化的首选语言。本章介绍基于requestsSelenium等工具的爬虫技术链,以及利用PandasMatplotlibSeaborn进行数据清洗与多维可视化的整体流程。结合Jupyter Notebook的交互式开发环境,本项目构建了一套可复现、易调试的数据分析流水线,涵盖从网页抓取到动态图表生成的全链路实践路径。

weixin_36151775的博客 1467

【亲测免费】 探索中国高铁地图的Python Web应用:一个创新的数据可视化项目

探索中国高铁地图的Python Web应用:一个创新的数据可视化项目 项目简介 是一个基于Python构建的Web应用,旨在以互动的方式展示中国的高铁网络。该项目利用了开源技术和数据,让用户能够直观地了解全国各地的铁路线路、站点分布及其相互连接关系。 技术分析 Python Flask框架:整个应用的核心是Flask,这是一个轻量级的Web服务器网关接口(WSGI)Web应用框架。它简洁而灵活...

gitblog_00079的博客 817

Js逆向抖音a_bogus --/* V 1.0.1.19-fix.01 */补环境

需要在addEventListener中补一个鼠标移动事件,不补这个环境,生成的值是假值,你拿去请求,响应200,但是没有数据,这个算是dy的最难发现的一个难点。dy这个,没有原形链检测,我只是习惯了这样补,对XMLHttpRequest进行重写,导出a_bogus.发现可以响应状态码200,而且可以获取数据,接着注释params中的a_bogus。在n.apply的下面插入上述代码,对a_bogus进行全局导出。如果没有,就多放几次断点,因为每个人的游览器不一样。必须触发至少一次鼠标事件,不触发不给过。

2302_76420666的博客 4201

python爬虫-数据可视化-气温排行榜

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:py3study ( 想要学习Python?Python学习交流群:1039649593,满足你的需求,资料都已经上传群文件流,可以自行下载!还有海量最新2020python学习资料。 ) python爬虫+数据可视化项目(一) 爬取目标:中国天气网(起始url:http://www.weather.com.cn/textFC/hb.shtml#) 爬取内容:

weixin_49345590的博客 2122

嵌入式常用通信协议 #概述

嵌入式通信协议

AFK3060的博客 2115

Matlab App Designer自学笔记(六):坐标轴控件axis函数绘图方法

作用: 绘制函数显示 显示图像(jpg png tiff) 颜色选项: r(红色) g(绿色) b(蓝色) w(白色) k(黑色) 其他 一、坐标区控件及设置 可以对坐标去进行设计: 二、功能实现及编程 功能:点击“绘图按钮”,能显示曲线。 实现:对按钮设置回调函数 若要多个图像显示在一个坐标系中,需要语句:hold(app.UIAxes,"on"); app.UIAxes是这个坐标轴的名字。 function ButtonP...

陶小桃Blog 3万+

Python-中国高铁地图python资源文件介绍

Python-中国高铁地图python资源文件介绍 去发现同类优质开源项目:https://gitcode.com/ 资源概述 本资源包含了一个Python项目,用于动态展示中国高铁地图。通过编辑各城市高铁站的经纬度数据,并在地图上绘制线路,实现了高铁网络的视觉展示。其中,线路的粗细代表了设计时速的高低,最高时速可达350KM/h。 功能特点 动态展示:地图可以展示高铁线路的动态效果,直观地反映...

gitblog_06728的博客 329

别再为模糊的3D重建头疼了!手把手教你用3DSlicer处理DICOM数据,搞定医学影像三维可视化

本文详细解析了医学影像三维重建中常见的模糊问题,并手把手教你使用3DSlicer处理DICOM数据,实现精准的三维可视化。从层厚设置到数据格式转换,再到重建算法选择和渲染参数微调,提供了一套完整的优化方案,特别适合临床医生和医学影像处理人员提升工作效率。

weixin_28693447的博客 246

108-基于Python的中国古诗词数据可视化分析系统

本项目构建了一个基于Python技术的中国古诗词数据可视化分析系统,采用Django+Vue.js前后端分离架构。系统整合了诗词浏览、AI智能创作(集成智谱AI)、多维数据可视化三大核心功能模块,实现了对10,000+首古诗词的结构化存储与智能分析。后端采用Django REST Framework构建RESTful API,前端使用Vue3+Element Plus实现交互式界面,通过词云、折线图等多种可视化形式展现诗词的朝代分布、高频词统计等数据特征。

qq_53846367的博客 1807

实战指南:基于汇川PLC与EtherNET/IP的无线以太网通信配置详解

本文提供了一份详细的实战指南,讲解如何配置汇川PLC基于EtherNET/IP协议的无线以太网通信。通过硬件选型(如达泰DTD419MB模块)、软件设置(使用AutoShop配置IP与I/O映射)及通信测试,实现PLC间稳定、灵活的数据交换,有效解决工业现场布线难题,提升部署与维护效率。

lake5的博客 613

`全网最细!! 入门必看Git教程链接:https://gitee.com/all-about-git`

全网 Git 入门教程 gitee.com。如果显示The requested URL returned error: 403错误,那就表示没有和window本地建立token令牌

qq_37855368的博客 3747

Python中国知网cnki爬虫及数据可视化分析设计:智能学术资源利器

Python中国知网cnki爬虫及数据可视化分析设计:智能学术资源利器 去发现同类优质开源项目:https://gitcode.com/ 项目核心功能/场景 实现中国知网(CNKI)学术资源爬取与数据可视化分析。 项目介绍 在学术研究领域,高效获取和处理学术资源是至关重要的。Python中国知网(CNKI)爬虫及数据可视化分析设计项目,为您提供了一种便捷的解决方案。该项目基于Python语言,利用...

gitblog_06798的博客 1012

电子货架标签应用浅析(ESL)

​【 关注与分享,是对原创最大的鼓励 】 年底了,会断续介绍几个主要的BLE的应用及市场情况,这篇文章介绍的是电子货架标签, ESL (Electronic Shelf Label)。 文章将从应用简介,市场规模,产业链,头部玩家及系统框架进行介绍。只对技术感兴趣的可以直接拉到底。 ESL简介 ESL,是一种显示产品,其主要是替代传统的纸质标签,应用于大型商超,...

iotthings的博客 4691

python网络爬虫及数据可视化

一、设计内容及要求 设计内容:对中国大学专业排名网站中2021年,计算机科学与技术专业,进行数据爬取和数据可视化。 URL: https://www.shanghairanking.cn/rankings/bcmr/2021/080901 设计要求: 使用requests库中的get方法获取网页。 提取出该专业的前15所大学的数据(排名、学校名称、总分),并保存到数据库。 使用matplotlib库绘制柱状图,实现数据可视化。 二、相关代码 先获取网页上类似json数据的排名、学校名称、总

weixin_43775982的博客 3783

在Ubuntu 20.04上,用EtherCAT Igh 1.6.2驱动高创BD3E伺服电机(附完整C代码)

本文详细介绍了在Ubuntu 20.04实时内核环境下,使用EtherCAT Igh 1.6.2主站驱动高创BD3E伺服电机的完整实现方案。从实时系统配置、伺服电机PDO映射到精确控制线程设计,提供了完整的C代码样例和实际项目中的调试技巧,帮助开发者实现工业自动化中的高精度运动控制。

weixin_30772105的博客 110

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

【亲测免费】 探索学术洞见:用Python打造你的知网数据可视化平台

探索学术洞见:用Python打造你的知网数据可视化平台 【下载地址】Python中国知网cnki爬虫及数据可视化分析设计 本项目是一个基于Python的中国知网(cnki)爬虫及数据可视化分析设计,旨在通过爬取中国知网上的学术论文数据,并利用数据可视化技术对这些数据进行分析和展示。项目采用Django框架搭建网站,结合C...

gitblog_09722的博客 561

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Python爬虫问题求助!!

求助 import requests from bs4 import BeautifulSoup from pyecharts.charts import Bar ALL_Data = [] def GetHTMLText(url): try: r = requests.get(url, timeout = 30) r.raise_for_status() r.encodi...

CPU2019的博客 423

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Python天气数据可视化分析系统 气象数据分析 爬虫技术 Flask框架 可视化大屏 空气质量分析 中国天气网

本文介绍了一个基于Python的中国气象数据可视化系统,采用Flask框架和MySQL数据库构建。系统核心功能包括:通过requests爬虫采集中国天气网数据(包含城市、日期、温度等字段),用户注册登录管理,城市气象查询,以及使用Echarts实现温度、空气质量等多维度可视化分析。项目结合LayUI前端技术开发了数据大屏、后台管理等界面,旨在为居民出行和企业生产提供直观的气象决策支持。系统架构涵盖数据采集、存储、处理到可视化展示的全流程,体现了Python在数据分析和Web开发中的应用价值。

QQ80213251的博客 1125

Python天气数据可视化分析系统 气象数据分析 爬虫技术 Flask框架 可视化大屏 空气质量分析 中国天气网 大数据技术 Hadoop✅

Python天气数据可视化分析系统 气象数据分析 爬虫技术 Flask框架 可视化大屏 空气质量分析 中国天气网 大数据技术 Hadoop✅

vx_biyesheji0001的博客 1765

高赞 GitHub 项目盘点:中国 Web 开发者路线图

推荐最近很火的 6 个开源项目,本期所有推荐都已经收录到 Awesome GitHub Repo,欢迎各位读者 Star。欢迎 Star:https://github.com/Wechat...

公众号:逛逛GitHub 1951
上一篇: Python批量爬取游戏卡牌信息
下一篇: Django开发之初识篇
PyCrawlFlutter Lab
博客等级 码龄7年 701粉丝 75原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值