pyecharts多维数据可视化

前言

所谓多维,就是数据不仅仅有x,y两列,而是有多列数据特征需要展示。这里主要分为两类展示方法,一类是用多张图展示多个数据,一类是一张图上展示多列数据。

导包:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import json
from pandas.io.json import json_normalize
from collections import Counter

单图中多列数据并列

读入数据和数据预处理:

#导入男鞋数据
op1=open(r'D:\python学习\数据分析与可视化数据\shoes.json', 'r',encoding='utf-8')
li=[]
dict1={
   }
for i in op1:
    k=json.loads(i.encode("utf-8"))#把字符串转换为json
    li.append(k)
a=json_normalize(li)#把由json数据构成的列表转换成数据框

a.groupby("nick").size().sort_values(ascending=False)#按店铺排序,nick是店铺的列名称

在这里插入图片描述
我们按店铺排序得到了上面的结果,现在计算上面排名前二的两个商家各个款式的对应的商品数量,并且组成矩阵,使得第一列是"意尔康皮鞋旗舰店"对应的商品数量,第二列是"米兰多格商场"的:

t1=a[a.nick=="意尔康皮鞋旗舰店"].groupby("info.款式").size()#=a[a.nick=="意尔康皮鞋旗舰店"]是导出该店铺的所有数据,groupby("info.款式")表示根据不同款式分组
t2=a[a.nick=="米兰多格商场"].groupby("info.款式").size()
p0=pd.concat([t1,t2],axis=1,sort=False).fillna(0)#拼成数据框,concat的好处是可以包容索引不对齐的情况,axis=1表示横向合并,fillna(0)表示不存在的变成0

结果如下:
在这里插入图片描述
利用上面的数据做出如下的柱图,注意这里包含了两个商家的数据

图的布局

导入作图的包:

from pyecharts.globals import ThemeType
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Bar

把两列数据放在一起:
只需要增加bar.add_yaxis()

bar = Bar(init_opts=opts.InitOpts(theme=ThemeType.PURPLE_PASSION))
bar.add_xaxis(p0[0].index.tolist())
bar.add_yaxis("意尔康皮鞋旗舰店", p0[0].tolist())
bar.add_yaxis("米兰多格商场", p0[1].tolist())
bar.set_global_opts(title_opts=opts.TitleOpts(title="某商场销售情况"),toolbox_opts=opts.ToolboxOpts())
bar.render_notebook()

结果如下:
在这里插入图片描述

图形的并列

我们同样也可以让多图在一个界面中显示,做的逻辑就是先分别作图,然后利用一个函数把它们加在一起。

from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.charts import Bar, Grid, Line,Scatter#导入Grid

#先做一个图
f1=Bar()
f1.add_xaxis(p0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值