数据可视化-课堂记录

week02

python 复制代码
# 数据可视化的发展历史 作用  格式塔原则
# 数据可视化的流程

# 数据分析 指标体系建设 确定一个行业+指标体系+实现报表(power bi  python matplotlib seaborn pyecharts echarts)
# 数据分析面试  
技术:sql+excel+python+powerbi+spss  
业务:理解一个行业,做日报周报月报外加临时取数,并进行指标异常分析

# 课程目标
完成一个BI报表:神策数据
懂业务+会一种BI技术+会指标体系构建+评价体系


# power bi快速实现了一个报表
python 复制代码
# matplotlib 2周  如何理解这个库 + 更好的使用
https://blog.csdn.net/m0_38139250/article/details/136796724
python 复制代码
# 6-8 周 seaborn库 如何理解这个库 + 更好的使用
https://blog.csdn.net/m0_38139250/article/details/137009691

机器学习的流程

有数据集

数据探索EDA 多少条 什么类型 有无缺失值 数据是文本or连续or离散 数据分布情况 特征之间和特征于标签之间的关系如何

数据特征工程预处理 缺失值填充删除不管 文本转换为数字onehot独热二进制序列编码 数字太大进行归一化 产生新的特征

数据模型选择 逻辑回归

模型评估

模型优化 交叉验证和模型融合

seabron

Seaborn是一个用Python制作统计图形的库。它构建在matplotlib之上,并与pandas数据结构紧密集成。

Seaborn帮助您探索和理解您的数据。它的绘图功能对包含整个数据集的数据框架和数组进行操作,并在内部执行必要的语义映射和统计聚合以生成信息丰富的绘图。它的面向数据集的声明性API让您可以专注于图表的不同元素的含义,而不是如何绘制它们的细节。

ax=sns.relplot(x="total_bill",y="tip",hue="day",

col="time",row="sex",data=tips,kind="line")

seaborn是做什么的

帮助理解数据 完整数据 内部语义映射 面向数据集的声明式api 不需要关注如何实现,只要关注要做什么

seaborn模块设计思想

绘图函数 有两个级别 画布级FacetGrid(大多用这个) 子图级(如果要和matplotlib的子图一起做,就用这个)

relplot

分布

分类

双变量联合分布于单变量分布图 joinplot 画布

双变量分布图 pairplot

seaborn基本使用

python 复制代码
from matplotlib import pyplot as plt 
import matplotlib as mpl
import numpy as np 

x = np.linspace(0, 2, 100)

fig, ax = plt.subplots()  
ax.plot(x, x, label='linear')  
ax.plot(x, x**2, label='quadratic')  
ax.plot(x, x**3, label='cubic')  
ax.set_xlabel('x label') 
ax.set_ylabel('y label') 
ax.set_title("Simple Plot")  
ax.legend() 
plt.show()
python 复制代码
# Import seaborn
import seaborn as sns

# Apply the default theme
sns.set_theme()

# Load an example dataset 需要
# tips = sns.load_dataset("tips")
tips = sns.load_dataset("tips",cache=True,data_home=r'.\seaborn-data')

# Create a visualization
sns.relplot(
    data=tips,
    x="total_bill", y="tip", col="time",
    hue="smoker", style="smoker", size="size",
)



# 画布级别 通过col和row绘制多个子图
ax=sns.relplot(x="total_bill",y="tip",hue="day",
            col="time",row="sex",data=tips,kind="line")
# ax.figure.set_size_inches(5,5)
plt.suptitle("7-指定col和row")

# 轴级别
fig,axes=plt.subplots(1,1)
ax = sns.scatterplot(x="total_bill", y="tip",hue="day",
 style="time",size='size',data=tips,ax=axes)

=============================

seaborn库使用

导入数据

绘图:画布级接口 子图级接口
关系:x和y都是连续或是x为多个离散值

分类:一个变量为分类的
人口普查的案例

说明了通过seaborn可以有效的帮我们理解数据

作业:

seaborn怎么学习,掌握数据集 钻石 四重奏

介绍相关、分类、分布、回归、结构网格绘图的作用,并描述其中的画布级(图形级)别函数 和 轴级函数 是什么,有什么特点,并能说出5个常见的参数以及作用

餐馆案例,你是餐馆老板,上周收入10000块,这周8000块,怎么进行分析,指标拆解,这个数据的变动到底是哪一个细粒度数据应用,按照人货场,

VIP 3000--1000 散客 1000-1000 外卖6000-6000得出是VIP用户消费少了,活动针对VIP,

VIP用户怎么少了 男女 男1000-500 女2000-500 针对与女性VIP进行进一步的拆解

模型

考上研究生

100条 1条 Y

99 N

N 99%

50人

姓名 age 住址 高数 概率论 英语1 2 3 4 计算机网络 体测 社团数量 竞赛 考研成绩

XX 20 河南 92 87 80 75 82 65 80 2 3 351

============================

Echarts

百度开源 apache基金会

能做什么 想做得都能做

canvas svg ---》zrender 封装 --->echarts 对zrender 封装

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <!-- <script src=""></script> -->
    <!-- 1.导入echarts.js  import -->
    <script src="https://cdn.jsdelivr.net/npm/echarts@5.3.2/dist/echarts.js"></script>
    <title>Document</title>
</head>
<body>
    <!-- 2. 提供一个具有 宽 和 高的 元素 div -->
    <div id="main" style="width: 600px;height: 600px;">  </div>
    <!-- 3. 提供一个script元素 写js代码 -->
    <script>
      // 4. 初始化元素为echarts对象
      var myid = document.getElementById("main");
      var myecharts = echarts.init(myid);


        //   5. 构建一个option
        var option = {
            // 6. 看官网
        }

        // 6. myecharts.setOption(option)
        myecharts.setOption(option)

    </script>
</body>
</html>

==============================

目标:前后端异步交互的可视化实现

项目目录

webapp.py

templates/index.html

static/js/echarts.js

1.写一个flask 接受 /index请求 返回 index.html页面

python 复制代码
@app.route('/index')
def index():
    return render_template('index.html')

2.前端 发送异步请求 fetch 发送给后端的一个请求request,后端web框架会接受 flask

html 复制代码
<script>
    fetch("http://127.0.0.1:5000/api_json2")
    .then(res => res.json())
    .then(function(data) {
        console.log(data);
        alert(data['data'][0]["name"]);
    })
</script>

2.flask 接受前端的请求 进行数据的读取,封装为json,返回给前端

python 复制代码
dict1 = {"result":"success", "data":[{"name":"北京","value":3245.896},{"name":"上海","value":2789.8}]}
@app.route('/api_json2')  # 127.0.0.1:5000/api_json1
def api_json1():
    return jsonify(dict1)

3.前端在异步请求中获取响应 response ,解析 把解析后的数据 放在option中的series中

html 复制代码
<script>
        // 4.绑定main 和  echarts
        div1 = document.getElementById("main2")
        myecharts2 = echarts.init(div1)
        
        // 5. 一个option
        var option3={
            xAxis:{
                type:'category',
                data:['a','b','c','d']
            },
            yAxis:{
                type:'value'
            },
            series:[
                {
                    data:[],
                    type:'scatter'
                },
                {
                    data:[],
                    type:'pie'
                }
            ]
        }
        // fetch 是 js内置的异步请求函数  请求json的接口
        fetch('http://127.0.0.1:5000/jsonify2')
            .then(function(response) {
                // 把请求到响应转换为json
                return response.json();
            })
            .then(function(myJson) {
                // 转换后的json数据  输出到控制台
                console.log(myJson);
                console.log(myJson);
                // 提取json数据中的key对应的value 并且把value赋值给option
                option3.series[0].data = myJson['c']
                option3.series[1].data = myJson['d']

                // 6.把option传递给myecharts
                myecharts2.setOption(option3)
            });

    </script>

==============================

echarts做一个前后端交互的可视化大屏

目的完成一个前后端交互的可视化==Echarts5.3.2可视化案例-交互篇

django flask fastapi

1.基于html和css实现页面布局,包括9个具有宽高的div

2.基于flask提供9个接口 /jsonbar 返回对应json数据

3.前端发生9个异步请求 请求对应的 /json 接口 获取json数据

4.前端针对获取到的json数据进行解析

5.把获取到的数据填入option的series的data中

fetch ajax 功能一样 都是异步刷新

==================================

报表设计与实现

指标体系 标签体系 评价体系

1.多个可视化大屏,每个可视化大屏是一个主题域

给销售人员(销售额 地区销售额 人员销售 销售订单 排名 销售目标)

给财务人员(收入 支出 固定成本 流水 ...)

给供应链人员(待生产 现有库存 原材料的缺口 产品库的数据 ...)

给生产人员

给决策人员

给安全风险人员

给质量检测人员
2.类似excel透视表的交互表格 fine report做后端
1.什么是flex

2.什么是rem flexable.js提供的一个可以随浏览器变化的单位

=========================================

课程目标:懂业务+会一种BI技术+会指标体系构建+评价体系

技术:matplotlib seaborn echarts 数据可视化绘图

应用:

数据分析报告和行业白皮书:matplotlib seaborn + 特定pyecharts+powerbi+finebi

https://www2.deloitte.com/content/dam/Deloitte/cn/Documents/consumer-business/deloitte-cn-consumer-coffee-industry-whitepaper-2021-210412.pdf
报表系统:WEB+数据开发 echarts 多个可视化大屏

https://cn.bing.com/images/search?q=神策数据\&form=HDRSC2\&first=1
知道什么样的图表达了什么信息,才能正确的使用图形

https://blog.csdn.net/m0_38139250/article/details/137217930
数据分析报告:

1.先把结论说明下

2.数据定义:关键指标 以及 指标定义

3.数据分析方法:对比和趋势 osm模型和象限模型,swot模型

4.分析过程:图文表的结合,要有明确结论

5.代码实现:

数据集加载

数据探索

数据处理

数据分析可视化

数据挖掘

相关推荐
eclipsercp2 小时前
【数据可视化入门】Python散点图全攻略:Matplotlib、Seaborn、Pyecharts实战代码大公开!
python·信息可视化·matplotlib
进击ing小白3 小时前
QChart数据可视化
qt·信息可视化
Jason-河山18 小时前
爬虫获取的数据如何有效分析以支持商业决策?
爬虫·信息可视化·数据分析
谢李由2023032208118 小时前
数据可视化学习心得
信息可视化·数据挖掘·数据分析
Leo.yuan19 小时前
101页PDF | 德勤_XX集团信息化顶层规划设计信息化总体解决方案(限免下载)
信息可视化·架构·数字化转型·智能工厂
泰迪智能科技0120 小时前
2024年工信部大数据分析师证书报考条件是怎样的?有什么用
大数据·信息可视化
努力的小好20 小时前
【python】数据可视化之图像处理
图像处理·python·信息可视化
枝上棉蛮2 天前
报表工具功能对比:免费易上手的山海鲸报表 vs 庞大用户群体的Tableau
信息可视化·数据挖掘·数据分析·数字孪生·中国式报表·报表制作工具·免费报表软件
禾乃儿_xiuer2 天前
《用Python画蔡徐坤:艺术与编程的结合》
开发语言·python·信息可视化·表白·代码·美术·简单代码
namisoft1232 天前
如何利用ATECLOUD平台来实现数据报告的导出和数据分析?-纳米软件
信息可视化·数据分析·atecloud测试平台