记一次练习(内容待完善)

记录最近一次爬虫和数据可视化练习

0、数据获取

import pandas as pdyear = [2018,2019,2020,2021,2022]
header = {"User-Agent":"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Mobile Safari/537.36 Edg/111.0.1661.44"
}
for i in year:url = ""df = pd.read_html(url, header=None)[13]# 删除空行df = df.drop(index=[1])# 删除最后一列df = df.drop(columns=["久其软件(002279) 利润表单位:万元.5"])# 如果不是2018年,则删除第一列if i != 2018:df = df.drop(columns=["久其软件(002279) 利润表单位:万元"])df1 = df.T# 写入csv文件df1.to_csv('2019.csv', header=None, mode="a", index=None)

1、数据可视化

1.1从文件中读取数据

# 读取写入的文件
all_data = pd.read_csv("2019.csv")
# all_data.duplicated().sum() # 查看重复值
# all_data.drop_duplicates(inplace=True)
# all_data.isnull().sum() #  查看空值
# all_data.fillna(0, inplace=True)
# all_data.reset_index(drop=True, inplace=True) # 重置索引

1.2绘图

这里使用pyecharts来进行绘制,官方文档,官方demo

绘制折柱混合图

import pyecharts
from pyecharts.charts import Line, Bar, Grid, WordCloud
import pyecharts.options as opts# 省略数据处理部分bar1 = (Bar().add_xaxis(year).add_yaxis("营业收入", year_income, bar_width=50).set_global_opts(title_opts=opts.TitleOpts(title="营业收入", subtitle="单位(元)"), yaxis_opts=opts.AxisOpts(min_=200000, max_=400000),legend_opts=opts.LegendOpts(is_show=False))
)
line1 = (Line().add_xaxis(year).add_yaxis("营业收入", year_income, linestyle_opts=opts.LineStyleOpts(color="red", width=4))
)bar2 = (Bar().add_xaxis(year).add_yaxis("营业费用", year_fee, bar_width=50).set_global_opts(title_opts=opts.TitleOpts(title="营业费用", subtitle="单位(元)", pos_left="48%"), yaxis_opts=opts.AxisOpts(min_=250000, max_=400000),legend_opts=opts.LegendOpts(is_show=False))
)
line2 = (Line().add_xaxis(year).add_yaxis("营业费用", year_fee, linestyle_opts=opts.LineStyleOpts(color="red", width=4))
)
overlap1 = bar1.overlap(line1)
overlap2 = bar2.overlap(line2)grid = (Grid(init_opts=opts.InitOpts(width="1200px", height="800px", page_title="营收与利润")).add(overlap1, grid_opts=opts.GridOpts(pos_right="58%")).add(overlap2, grid_opts=opts.GridOpts(pos_left="58%")).render('1.html')
)

绘制标签切换图

# 绘图
def create_line(profit):season = []accu_money = [] # 累积利润money = [] # 每季度利润for key in profit:season.append(key)accu_money.append(profit[key])accu_money = accu_money[::-1]money.append(accu_money[0])money.append(accu_money[1] - accu_money[0])money.append(accu_money[2] - accu_money[1])money.append(accu_money[3] - accu_money[2])line = (Line().add_xaxis(season[::-1]).add_yaxis("", money).set_global_opts(title_opts=opts.TitleOpts(title="季度利润", subtitle="单位(元)")))return linetab = Tab(page_title="季度利润") # 设置网页标签的标题
tab.add(create_line(profit_2018), "2018")
tab.add(create_line(profit_2019), "2019")
tab.add(create_line(profit_2020), "2020")
tab.add(create_line(profit_2021), "2021")
tab.add(create_line(profit_2022), "2022")
tab.render("2.html")

绘制大屏

首先绘制要展示的各种图表,通过page对象进行整合

# 创建page对象整合布局
from pyecharts.charts import Page# 实例化page对象,指定布局方式
page = Page(layout=Page.DraggablePageLayout, page_title="基于Pyecharts的数据大屏")
page.add(bar1,line1,bar2,line2,create_line(profit_2018),create_line(profit_2019),create_line(profit_2020),create_line(profit_2021),create_line(profit_2022),
)
page.render("4.html")

接着在浏览器中调整各图表的大小和位置,保存json文件后,重新进行渲染

Page.save_resize_html(source="4.html", cfg_file="./chart_config.json", dest="5.html")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/37155.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

31 | 独角兽企业数据分析

独角兽企业:是投资行业尤其是风险投资业的术语,一般指成立时间不超过10年、估值超过10亿美元的未上市创业公司。 项目目的: 1.通过对独角兽企业进行全面地分析(地域,投资方,年份,行业等),便于做商业上的战略决策 项目数据源介绍 1.数据源:本项目采用的数据源是近…

2023年大厂前端面试题汇总

一、58同城前端面试题27道 1. css盒模型 2. css画三角形 3. 盒子水平垂直居中(所有方式) 4. 重绘、重排 重绘就是重新绘制(repaint):是在一个元素的外观被改变所触发的浏览器行为,浏览器会根据元素的新属性…

文档控件DevExpress Office File API v23.1新版亮点 - 支持.NET MAUI

DevExpress Office File API是一个专为C#, VB.NET 和 ASP.NET等开发人员提供的非可视化.NET库。有了这个库,不用安装Microsoft Office,就可以完全自动处理Excel、Word等文档。开发人员使用一个非常易于操作的API就可以生成XLS, XLSx, DOC, DOCx, RTF, CS…

Spring Security自定义登陆界面和密码验证逻辑

maven依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId> </dependency> 创建配置文件处理跳转拦截等功能以及密码比对功能 package com.example.demo2.demos.web1;…

Shell 变量

Shell 变量 定义变量时&#xff0c;变量名不加美元符号&#xff08;$&#xff0c;PHP语言中变量需要&#xff09;&#xff0c;如&#xff1a; your_name"runoob.com" 注意&#xff0c;变量名和等号之间不能有空格&#xff0c;这可能和你熟悉的所有编程语言都不一样…

python如何实现1ms内触发两个接口请求

在Python中&#xff0c;可以通过多线程或者协程来实现1ms内触发两个接口请求。以下是两种方法的示例代码&#xff1a; 1.多线程实现&#xff1a; import threading import requestsdef send_request(url):response requests.get(url)print(response.text)# 创建两个线程&…

nginx一般轮询、加权轮询、ip_hash等负载均衡模式配置介绍

一.负载均衡含义简介 二.nginx负载均衡配置方式 准备三台设备&#xff1a; 2.190均衡服务器&#xff0c;2.191web服务器1&#xff0c;2.160web服务器2&#xff0c;三台设备均安装nginx&#xff0c;两台web服务器均有网页内容 1.一般轮询负载均衡 &#xff08;1&#xff09…

ARTS 挑战打卡的第9天 --- 如何知道一个数是否为2的若干次幂(Algorithm)

前言 &#xff08;1&#xff09;今天看到一个有意思的问题&#xff0c;如何判断一个数字是否为2的若干次幂。这个问题并不难&#xff0c;但是对于我们的C语言功底还是有一点点的考验的。 &#xff08;2&#xff09;希望各位可以先自行思考&#xff0c;实在想不出来再看后面的讲…

【es6】具名组匹配

1、组匹配 正则表达式使用圆括号进行组匹配&#xff0c;如&#xff1a;const RE_DATE /(\d{4})-(\d{2})-(\d{2})/;,三个圆括号形成了三个组匹配。 代码&#xff1a; const RE_DATE /(\d{4})-(\d{2})-(\d{2})/;const matchObj RE_DATE.exec(1999-12-31); const year matchO…

rabbitmq的消息应答

消费者完成一个任务可能需要一段时间&#xff0c;如果其中一个消费者处理一个长的任务并仅只完成 了部分突然它挂掉了&#xff0c;会发生什么情况。RabbitMQ 一旦向消费者传递了一条消息&#xff0c;便立即将该消 息标记为删除。在这种情况下&#xff0c;突然有个消费者挂掉了…

数据分析两件套ClickHouse+Metabase(一)

ClickHouse篇 安装ClickHouse ClickHouse有中文文档, 安装简单 -> 文档 官方提供了四种包的安装方式, deb/rpm/tgz/docker, 自行选择适合自己操作系统的安装方式 这里我们选deb的方式, 其他方式看文档 sudo apt-get install -y apt-transport-https ca-certificates dirm…

魔改 axuanup 的 aardio和python 猜拳游戏 代码

根据 axuanup 的 aardio和python 猜拳游戏 代码&#xff0c;魔改了一个风格不一样的代码。 争取做到代码尽量“简”&#xff0c;但还没到“变态简”的程度&#xff0c;因为还能看懂。 原文&#xff1a;aardio和python 猜拳游戏-自由交流乐园-Aardio资源网 代码如下&#xff…

【Flutter】【基础】CustomPaint 绘画功能(一)

功能&#xff1a;CustomPaint 相当于在一个画布上面画画&#xff0c;可以自己绘制不同的颜色形状等 在各种widget 或者是插件不能满足到需求的时候&#xff0c;可以自己定义一些形状 使用实例和代码&#xff1a; CustomPaint&#xff1a; 能使你绘制的东西显示在你的ui 上面&a…

竞赛项目 酒店评价的情感倾向分析

前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 酒店评价的情感倾向分析 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f9ff; 更多资料, 项目分享&#xff1a; https://gitee.com/dancheng-senior/post…

解决QTabelView无法立即刷新问题

解决QTabelView无法理解刷新问题 在某些时候&#xff0c;Qt的奇葩现象&#xff0c;调试中QTabelView的相关model数据变更了&#xff0c;界面却没立即刷新&#xff0c;然而&#xff0c;点击标题栏等才刷新&#xff0c;奇葩。很多网上资料说QTabelView::update()和QTabelView::r…

用Python做一个滑雪小游戏

游戏是让人娱乐和放松的好方式&#xff0c;而编写和玩自己的游戏则是一种特别有趣的体验。在本文中&#xff0c;我们将使用Python和pygame库来创建一个简单的滑雪小游戏。通过这个小游戏项目&#xff0c;我们将学习如何使用Python编程语言来制作自己的游戏&#xff0c;并且享受…

IT运维:使用数据分析平台监控深信服防火墙

概述 深信服防火墙自身监控可以满足绝大部分需求&#xff0c;比如哪个应用占了最大带宽&#xff0c;哪个用户访问了哪些网站&#xff1f;这里我们为什么使用鸿鹄呢&#xff1f;因为我们要的是数据的处理和分析&#xff0c;比如某个用户在某个事件都做了哪些行为&#xff0c;这个…

【设计模式】前端控制器模式

前端控制器模式&#xff08;Front Controller Pattern&#xff09;是用来提供一个集中的请求处理机制&#xff0c;所有的请求都将由一个单一的处理程序处理。该处理程序可以做认证/授权/记录日志&#xff0c;或者跟踪请求&#xff0c;然后把请求传给相应的处理程序。以下是这种…

基于鲲鹏平台Ceph深度性能调优

刘亮奇 架构师技术联盟 2021-04-12 07:50 摘自&#xff1a; https://mp.weixin.qq.com/s/o9HH-8TF0DbMqHrvsFh1NA 随着 IOT、大数据、移动互联等应用的暴涨&#xff0c;产生的数据也越来越多&#xff0c;整个存储市场总量也逐年增长&#xff0c;预计到 2021 年分布式存储会占到…