关于【pye charts教程重大更新】,今天犇涌小编给您分享一下,如果对您有所帮助别忘了关注本站哦。
内容导航:1、pye charts教程重大更新:数据可视化之pyecharts系列(一) 让你的图表动起来2、pye charts教程重大更新,Pyecharts制作可视化大屏全流程1、pye charts教程重大更新:数据可视化之pyecharts系列(一) 让你的图表动起来
pyecharts是一款将python与echarts结合的强大的数据可视化工具,本系列文章将为你阐述pyecharts的使用细则,让你对数据进行可视化处理时更加得心应手。这一系列中全部代码在Windows 10系统下基于Python3.7和pyecharts1.9.0实际运行通过。
一、前言
通过名字不难发现 PyEcharts = Python + Echarts,Echarts是一款由百度开源的强大的可视化处理工具,当Python与Echarts结合,就成了PyEcharts。前段时间数学建模遇到一些图形可视化问题,pyecharts也是在这个时候进入笔者视野。从现学现用到系统化学习,笔者将通过这一系列文章更新pyecharts基础以及实际应用。
二、安装
打开命令行(win+R),输入以下代码安装pyecharts库。
pip install pyecharts
但是由于某些原因,使用这种方法下载速度不够理想或者直接导致下载失败,遇到这种情况可以修改镜像源,使用下面方法进行下载安装。
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyecharts
笔者电脑安装时两种方法并无明显速度区别,如果第一种安装失败或速度过慢的小伙伴可以试试第二种方法。
三、使用实例
由于篇幅原因pyecharts的所有基础绘图方法笔者将会在未来几期依次更新,今天将给大家介绍直角坐标系图的使用实例。
我们需要导入的库有:
from pyecharts.charts import *from pyecharts.components import Tablefrom pyecharts import options as optsfrom pyecharts.commons.utils import JsCodeimport randomimport datetime
直方图(Histogram),又称质量分布图,是一种统计报告图,由一系列高度不等的纵向条纹或线段表示数据分布的情况。 一般用横轴表示数据类型,纵轴表示分布情况。
直方图示例
实现代码:
x_data = ['meituan','zhifubao','weixin','taobao','jingdong','pinduoduo']y_data = [123,153,89,107,98,23]bar = (Bar() .add_xaxis(x_data) .add_yaxis(' ',y_data) )bar.render('直方图.html')
折线图可以显示随时间(根据常用比例设置)而变化的连续数据,因此非常适用于显示在相等时间间隔下数据的趋势。
折线图示例
实现代码:
x_data = ['meituan','zhifubao','weixin','taobao','jingdong','pinduoduo']y_data = [123,153,89,107,98,23]line = (Line() .add_xaxis(x_data) .add_yaxis(' ',y_data) )line.render('折线图.html')
箱形图(Box-plot)又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图。因形状如箱子而得名。在各种领域也经常被使用,常见于品质管理。它主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比较。
箱型图示例
实现代码:
x_data = ['meituan','zhifubao','weixin','taobao','jingdong','pinduoduo']y_data = [[random.randint(100, 200) for i in range(10)] for item in x_data]Box = Boxplot()Box.add_xaxis(x_data)Box.add_yaxis("", Box.prepare_data(y_data))Box.render('箱型图.html')
散点图是指在回归分析中,数据点在直角坐标系平面上的分布图,散点图表示因变量随自变量而变化的大致趋势,据此可以选择合适的函数对数据点进行拟合。
散点图示例
实现代码:
x_data = ['meituan','zhifubao','weixin','taobao','jingdong','pinduoduo']y_data = [123,153,89,107,98,23]scatter = (Scatter() .add_xaxis(x_data) .add_yaxis('',y_data) )scatter.render('散点图.html')
除此之外,我们还可以通过EffectScatter方法制作带有涟漪效果的散点图,示例如下。
带涟漪效果的散点图
实现代码:
x_data = ['meituan','zhifubao','weixin','taobao','jingdong','pinduoduo']y_data = [123,153,89,107,98,23]effectscatter = (EffectScatter() .add_xaxis(x_data) .add_yaxis('',y_data) )effectscatter.render('涟漪效果散点图.html')
热力图(Heat Map)是通过密度函数进行可视化用于表示图表中点的密度的热图。它使人们能够独立于缩放因子感知点的密度。现今热力图在网页分析、业务数据分析等其他领域也有较为广泛的应用。
热力图示例
实现代码:
data = [[i, j, random.randint(0, 100)] for i in range(24) for j in range(7)]hour_list = [str(i) for i in range(24)]week_list = ['周日', '周一', '周二', '周三', '周四', '周五', '周六']heat = (HeatMap() .add_xaxis(hour_list) .add_yaxis("", week_list, data) )heat.render('热力图.html')
层叠图是指在一个直角坐标系中将两种或以上的统计图表示出来。这种方法节省了占用空间并在某些情况下可以更直观地看清统计情况。
层叠图示例
实现代码:
2、pye charts教程重大更新,Pyecharts制作可视化大屏全流程
作者:俊欣
来源:关于数据分析与可视化
今天我们就来说说如何用Pyecharts模块来制作炫酷的可视化大屏,最后的效果如下
步骤如下:
分别使用Pyecharts制作各类图表,包括柱状图、地图、饼图等等使用Pyecharts当中的组合图表功能,将所有图片拼接在一张html文件中进行展示数据的来源这次我们使用的数据是虚构的某超市2021年第一季度的订单数据,总共是有1000条,
df.info()
output
<class 'pandas.core.frame.DataFrame'>RangeIndex: 1000 entries, 0 to 999Data columns (total 17 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 订单编号 1000 non-null object 1 分支 1000 non-null object 2 省份 1000 non-null object 3 顾客类型 1000 non-null object 4 性别 1000 non-null object 5 商品类型 1000 non-null object 6 单价 1000 non-null float64 7 数量 1000 non-null int64 8 Tax 5% 1000 non-null float64 9 总价 1000 non-null float64 10 日期 1000 non-null datetime64[ns] ....... dtypes: datetime64[ns](1), float64(7), int64(1), object(8)memory usage: 132.9 KB
其中顾客的类型有普通顾客与会员,性别有男性与女性,剩下的还有包括商品类型、购买时间、支付方式、各个商品的毛利率等数据,
数据可视化接下来我们开始各个图表的绘制,我们先来看饼图的绘制,代码并不复杂,首先我们对“商品类型”这一列的数据进行统计
products_type_index = df["商品类型"].value_counts().index.tolist()products_type_values = df["商品类型"].value_counts().values.tolist()
然后再调用Pyecharts()模块中的Pie()实例进行图表的绘制
def pie_chart_2(): c = ( Pie(init_opts=opts.InitOpts(chart_id=4, bg_color='#1C1C1C', theme=ThemeType.INFOGRAPHIC)) .add("", [list(z) for z in zip(products_type_index, products_type_values)]) .set_global_opts(title_opts=opts.TitleOpts(title="商品类型分布图", title_textstyle_opts=opts.TextStyleOpts(font_size=25, color='#FFFFFF')), legend_opts=opts.LegendOpts(orient="vertical", pos_left="5%", pos_top="10%")) .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}")) ) return c if __name__ == "__main__": map = map_chart() map.render("4.html")
output
另外,我们也看到了单张图片当中有两张饼图的情况,这是使用了Pyecharts()模块当中的Grid()实例,将若干张绘制完成的图表遵从一定的顺序来进行组合
grid = ( Grid(init_opts=opts.InitOpts(width='1000px', height='600px', chart_id=3, bg_color='#1C1C1C')) .add(c_1, grid_opts=opts.GridOpts(pos_left="60%")) .add(c_2, grid_opts=opts.GridOpts(pos_right="50%")) )
地图同样地,我们将不同省份的数据给筛选出来之后,然后进行图表的绘制
city_index = df["省份"].value_counts().index.tolist()city_values = df["省份"].value_counts().values.tolist()
地图的绘制用的是Pyecharts模块当中的Map()实例,可以看到顾客几乎都分布在北京、浙江以及上海这几个地方
def map_chart(): c = ( Map(init_opts=opts.InitOpts(chart_id=2, bg_color='#1C1C1C')) .add("商家A", [list(z) for z in zip(city_index, city_values)], "china") .set_global_opts( title_opts=opts.TitleOpts(title="顾客在全国的分布图", title_textstyle_opts=opts.TextStyleOpts(font_size=25, color='#FFFFFF')), visualmap_opts=opts.VisualMapOpts(max_=250), ) ) return c if __name__ == "__main__": map = map_chart() map.render("2.html")
output
直方图我们针对的是购买时间,看一下哪些购买时间段的人会比较多
hour_index = df["小时"].value_counts().index.tolist()hour_index_str = [str(hour_ind) "时" for hour_ind in hour_index]hour_values = df["小时"].value_counts().values.tolist()
调用Bar()实例进行绘制图表
def bar_chart(): c = ( Bar(init_opts=opts.InitOpts(chart_id=5, bg_color='#1C1C1C', theme=ThemeType.CHALK)) .add_xaxis(hour_index_str) .add_yaxis("商家A", hour_values) .set_global_opts(title_opts=opts.TitleOpts(title="购物的时间分布", subtitle="购物时间", title_textstyle_opts=opts.TextStyleOpts(font_size=25, color='#FFFFFF'))) ) return c if __name__ == "__main__": map = map_chart() map.render("5.html")
output
Pyecharts组合图表将绘制出来的若干份图表组合到一块儿,总共有这几种方式
Grid: 并行/垂直放置多张图Page: 顺序多图Tab: 多个页面多图Timeline: 时间轴循环轮播多图我们使用的是Page()示例来顺序展示多张图表,先实例化该对象
page = Page(layout=Page.DraggablePageLayout, page_title="基于Pyecharts的销售数据大屏")
之所以用DraggablePageLayout属性是为了调整成我们所想要的布局,然后将我们所绘制的图表一一添加
page.add( title(), map_chart(), pie_chart(), pie_chart_2(), bar_chart(),)page.render('test_2.html')
最后生成一个test_2.html的文件,然后我们将布局调整成我们想要的结果
这就是关于《pye charts教程重大更新,数据可视化之pyecharts系列》的所有内容,希望对您能有所帮助!