echarts-数据可视化大屏展示

Posted TIME0101

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了echarts-数据可视化大屏展示相关的知识,希望对你有一定的参考价值。

echarts-数据可视化大屏展示
python-pandas-echarts-flask
在这里插入图片描述
新手入门,还请指教。

1 数据预处理

此部分使用jupyter
2.1.1导入包pandas包

 import pandas as pd

2.1.2读取文件
(1)使用pandas读取导入6个数据文件。

data_1 = pd.read_csv('data\\cata_6008_1.csv')
data_2 = pd.read_csv('data\\cata_6008_2.csv')
data_3 = pd.read_csv('data\\cata_6008_3.csv')
data_4 = pd.read_csv('data\\cata_6008_4.csv')
data_5 = pd.read_csv('data\\cata_6008_5.csv')
data_6 = pd.read_csv('data\\cata_6008_6.csv')

(2)查看数据导入是否正确,输出前三行。
#输出前3行检查是否读取正确

data_1.head(3)

在这里插入图片描述

2.1.3删除每一个文件里的主键ID列,1且合并6个文件。
用iloc获取所有行,去除最后一列;并使用concat合并6个文件。

 all_data = pd.concat((data_1.iloc[:, 0:-1],data_2.iloc[:, 0:-1],data_3.iloc[:, 0:-1],
                      data_4.iloc[:, 0:-1],data_5.iloc[:, 0:-1],data_6.iloc[:, 0:-1]))
all_data

在这里插入图片描述

2.1.4在每个文件里创建商品销量和销售额两列, 即增加两列“商品销量”和“销售额”,并可先设值为NaN。
直接将空值赋给列“商品销量”和“销售额”列,即可增加两列。

all_data['商品销量'] = "NaN"
all_data['销售额'] = "NaN"
all_data

在这里插入图片描述
2.1.5删除所有采价地为浙江省的数据行。

#查询浙江省的数据
#all_data[all_data['商品采价地区名称'].isin(['浙江省'])]

在这里插入图片描述

#用“~”选取不包含‘浙江省’的数据
all_data=all_data[~all_data['商品采价地区名称'].isin(['浙江省'])]
#再次查询浙江省
all_data[all_data['商品采价地区名称'].isin(['浙江省'])]

已无浙江省数据
在这里插入图片描述
2.1.6填充“商品销量”和“销售额”列。
思想:判断数据文件整合后的长度,假设长度为n,以这个长度数据为基准,采用python里的随机数生成方法,生成n个数据,这n个数据作为“商品销量”列的数据。“销售额”列的数据为商品价格和商品销量列的乘积。
(1)查看所有行,即用shape查看形状,可以看到有25641行。

all_data.shape

在这里插入图片描述
引用numpy包的random方法来生成随机数并存为列表

import numpy as np
indata= np.random.randint(0,10000,25641)
indata

在这里插入图片描述

(2)赋值并查看所有数据,商品销量已经被随机数数组填充。

all_data["商品销量"] = indata
all_data

在这里插入图片描述
(3)直接将价格,销量两列相乘即可得到销售额的值。

all_data['销售额'] =  all_data['商品价格']*all_data['商品销量']
all_data

在这里插入图片描述
2.1.7,将商品主键替换为商品1,2,3。。。,
先将商品主键与新商品主键生成字典进行一一对应,再利用字典替换。

准备期末考试中,间断持续更新,代码解析持续完善中。。。。。
关注公众号: 我是TIME0101
回复:浙江省农产品数据可视化
可获取源码

2可视化部分

此部分使用pycharm

2.1query.py

from flask import Flask, request, render_template
from getdata import get_data
app = Flask(__name__)
@app.route('/query', methods=['GET', 'POST'])
def query():
    if request.method == 'POST':
        urban = request.form.get('urban')
        goods = request.form.get('goods')
        dict_return = get_data(urban, goods)
        return render_template('query.html', dict_return = dict_return) 
    else:
        dict_return = get_data('杭州市','商品1')
        return render_template('query.html', dict_return = dict_return)


if __name__ == '__main__':
   app.run(port=4500,debug = True)

2.2get_data模块

import datetime
import pandas as pd
def read_urban(urban):
    urban = pd.read_csv('data/' + urban + '.txt', sep="\\t")
    return urban

def get_data(urban, goods):
    dict_return = {}  # 存放需要的数据

    #获取城市并返回当前城市
    dict_return['urban'] = urban
    
    #地图
    dict_return['city_highlight'] = [{"name": urban, "selected": "true"}]

    #数据初步整理
    data_1 = read_urban(urban)  # 通过城市返回城市列表
    data_2 = data_1[data_1['商品主键'] == goods]  # 通过商品获取某一类商品数据
    data_goods = data_2.sort_values(by='商品采价日期')  # 按照日期正序排列数据
    # 柱状XY时间销量、折线XY时间价格、气泡XY时间销量、饼图XY年销售额
    time_x = data_goods['商品采价日期']  # 获取日期
    sale_n_y = data_goods['商品销量']  # 获取销量
    price_y = data_goods['商品价格']
    all_price_y = data_goods['销售额']

    #滚动表
    data_list = data_2.copy(deep=True)
    num = []
    n = data_list.shape[0]
    for i in range(1, n):
        num.append(str(i))

    dict_return['diff_list'] = [ {'Ranking': item[0], '商品主键': item[1], '商品价格': item[2],
                                  '商品采价日期': item[3], '商品销量': item[4],'销售额': item[5]}
                                 for item in list(zip(num, data_list['商品主键'], data_list['商品价格'],
                            data_list['商品采价日期'], data_list['商品销量'],data_list['销售额']))]  # 将数据制作成滚动图需要的数据格式
    print(dict_return['diff_list'])

    #饼图数据
    data_year = data_goods.copy(deep=True)
    data_year['商品采价日期'] = pd.to_datetime(data_year['商品采价日期'])
    data_year['商品采价日期'] = data_year['商品采价日期'].apply(lambda x:datetime.datetime.strftime(x,'%Y'))
    data_year = data_year.groupby([ '商品采价日期'],as_index=False).sum()    # print(data_goods)
    sale_Y_x = data_year['商品采价日期']
    sale_Y_y = data_year['销售额']
    dict_return['diff'] = [{"name": item[0], "value": item[1]} for item in
                           list(zip(sale_Y_x, sale_Y_y))]  # 将数据制作成柱饼图需要的数据格式


    #雷达
    data_Month = data_goods.copy(deep=True)
    data_Month['商品采价日期'] = pd.to_datetime(data_Month['商品采价日期'])
    data_Month['商品采价日期'] = data_Month['商品采价日期'].apply(lambda x: datetime.datetime.strftime(x, '%m'))
    data_Month = data_Month.groupby(['商品采价日期'], as_index=False).sum()
    sale_M_y = data_Month['销售额']
    money = []
    for item in sale_M_y:
        money.append(int(item))
    dict_return['diff_l'] = {"name": '月份销售总额', "value": money}

    #数据终处理
    time_x = list(time_x)
    sale_n_y = list(sale_n_y)
    price_y = list(price_y)
    all_price_y = list(all_price_y)
    dict_return['time_x'] = time_x
    dict_return['sale_n_y'] = sale_n_y
    dict_return['price_y'] = price_y
    dict_return['all_price_y'] = all_price_y

    return dict_return

#get_data('杭州市', '商品1')

2.3html

代码过长,公众号可获取。
准备考试,持续更新,代码解析持续完善中。。。。。
关注公众号: 我是TIME0101
回复:浙江省农产品数据可视化
可获取源码

在这里插入图片描述

以上是关于echarts-数据可视化大屏展示的主要内容,如果未能解决你的问题,请参考以下文章

echarts-数据可视化大屏展示

基于Echarts+HTML5可视化数据大屏展示—Echart图例使用

echarts-python数据可视化大屏展示

echarts-python数据可视化大屏展示

基于Echarts+HTML5可视化数据大屏展示—运营大数据平台

基于Echarts+HTML5可视化数据大屏展示—大数据智慧数据平台