【数据分析3】数据分析基础与Pyecharts基础

pyecharts 是一个用于生成 Echarts 图表的类库。Echarts是百度开源的一个数据可视化 JS 库。
用 Echarts 生成的图可视化效果非常棒,pyecharts 是为了与 Python 进行对接,方便在 Python 中直接使用数据生成图。

本文介绍为1.0版本
官网:官网链接
中文文档:https://pyecharts.org/#/zh-cn/intro
优点:
与Echarts结合
与Web端结合
超强交互性
国人开发的项目

1.模块安装

Windows :
pip install pyecharts_jupyter_installer
pip install pyecharts
Mac:
pip3 install pyecharts_jupyter_installer
pip3 install pyecharts

或者直接:
pip install pyecharts
pip3 install pyecharts

2.图表绘制流程:

  1. chart_name = 图表类型() 初始化具体类型图表。
  2. chart_name.add() 添加数据及配置项。
    2.1 chart_name.add_xaxis() 添加横坐标名称
    2.2 chart_name.add_yaxis() 添加纵坐标数据
  3. chart_name.render() 渲染生成 .html 文件。

3.导入模块

from pyecharts.faker import Faker     #创建虚构的数据
from pyecharts import options as opts #配置
from pyecahrts.charts import Bar	  #bar图

4.绘制二维柱状图
1.输入数据

from pyecharts import options as opts #配置
from pyecharts.charts import Bar  #bar图
bar = Bar()    #实例化 柱状图/条形图
bar.add_xaxis(["衬衫",'毛衣','裤子','领带','帽子'])  #add_xaxis(x轴标签列表)
bar.add_yaxis('商家',[93,92,120,111,121])  #add_yaxis(名称,y轴数据列表)
bar.render()

#注意数据得到的是python的list/列表类型,
如果是numpy的数组需要转换为list

2.或者利用faker,获取随机的数据

rom pyecharts.faker import Faker     #创建虚构的数据
from pyecharts import options as opts #配置
from pyecharts.charts import Bar  #bar图
bar = Bar()    #实例化 柱状图/条形图
#bar.add("服装", ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"], [5, 20, 36, 10, 75, 90])
#bar.add_xaxis(["衬衫",'毛衣','裤子','领带','帽子'])  #add_xaxis(x轴标签列表)
#bar.add_yaxis('商家',[93,92,120,111,121])  #add_yaxis(名称,y轴数据列表)
#注意数据得到的是python的list/列表类型,如果是numpy的数组需要转换为list
bar.add_xaxis(Faker.choose())
bar.add_yaxis("商家",Faker.values())
bar.render()

3.添加标题副标题

bar.set_global_opts(title_opts=opts.TitleOpts(title="Bar-演示",subtitle="副标题"))

4.变更主题

from pyecharts.globals import ThemeType
bar = Bar(init_opts=opts.InitOpts(theme=ThemeType.CHALK))  

当然也可以采用其他官方提供的主题或自己设定主题
5.设定高度宽度

bar = Bar(
	init_opts=opts.InitOpts(
		theme=ThemeType.CHALK,
		width="1280x",
		height="720x")) 

6.旋转标签

bar.set_global_opts(
	title_opts=opts.TitleOpts(
		title="Bar-演示",
		subtitle="副标题"),
	xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=30))) #旋转x轴标签

7.两两堆叠制作效果图

bar.add_yaxis("商家A",Faker.values(),stack="stack1")   #两两堆叠制作效果图  stack1堆2数据
bar.add_yaxis("商家B",Faker.values(),stack="stack1")
bar.add_yaxis("商家C",Faker.values(),stack="stack2")   
bar.add_yaxis("商家D",Faker.values(),stack="stack2")

在这里插入图片描述
8.柱状图标记点/线

bar.set_series_opts(
	label_opts=opts.LabelOpts(is_show=False),  #不显示数字
	markpoint_opts=opts.MarkPointOpts(
		data=[
			opts.MarkPointItem(type_="max",name="最大值"),    #柱状图标记点
			opts.MarkPointItem(type_="min",name="最小值"),
		]
	),

	markline_opts=opts.MarkPointOpts(                        #标记线
		data=[
			opts.MarkPointItem(type_="average",name="平均值"),
			]
	),
)

在这里插入图片描述
9.柱状图xy交换

bar.reversal_axis()   #柱状图xy交换

在这里插入图片描述
10.窗口滑块

bar.set_global_opts(
	title_opts=opts.TitleOpts(
		title="Bar-演示",
		subtitle="副标题"),
	xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=30)),   #旋转x轴标签
	datazoom_opts=[opts.DataZoomOpts()])           #窗口滑块效果

5.绘制三维柱状图
1.导入模块,创建数据

from pyecharts.charts import Bar3D

data = [(i,j,random.randint(0,12) for i in range(24) for j in range(6))] 
#创建数据,数据是一个列表,每一项都是一个三个元素组成的列表/元祖
#【x坐标,y坐标,z坐标】

2.创建

from pyecharts.faker import Faker 
from pyecharts.charts import Bar3D
from pyecharts import options as opts
import random

data = [(i, j, random.randint(0,12)) for i in range(24) for j in range(6)] 
#创建数据,数据是一个列表,每一项都是一个三个元素组成的列表/元祖
#【x坐标,y坐标,z坐标】
bar3d = Bar3D()
bar3d.add(
	"",
	data,
	xaxis3d_opts=opts.Axis3DOpts(Faker.clock,type_="category"),   #
	yaxis3d_opts=opts.Axis3DOpts(Faker.week_en,type_="category"),
	zaxis3d_opts=opts.Axis3DOpts(type_="value"),                  #数值
	)
bar3d.set_global_opts(
	visualmap_opts=opts.VisualMapOpts(max_=20),
	title_opts=opts.TitleOpts(title="3D演示"),
)
bar3d.render()

在这里插入图片描述
6.折线图

#折线图
from pyecharts.faker import Faker 
from pyecharts.charts import Line
from pyecharts import options as opts

line = Line()
line.add_xaxis(Faker.choose())
line.add_yaxis("商家A",Faker.values(),
	is_smooth=True,     #平滑
	)
line.add_yaxis("商家B",Faker.values())
line.set_global_opts(title_opts=opts.TitleOpts(title="折线图演示"))
line.render()

在这里插入图片描述
7.面积图

#折线图
from pyecharts.faker import Faker 
from pyecharts.charts import Line
from pyecharts import options as opts

line = Line()
line.add_xaxis(Faker.choose())
line.add_yaxis(
	"商家A",
	Faker.values(),
	is_smooth=True,     #设置平滑
	areastyle_opts=opts.AreaStyleOpts(
		opacity=0.2,   #填充区域透明度
		#color="000"  #填充区域颜色 单色
		color={        #渐变色
		'type':'linear',
		'x': 0,
		'y': 0,
		"x2": 0,
		"y2": 1,
		"colorStops":[{
			"offset":0,"color":"red"	
		},{
			'offset':1,"color":'blue'
		}]


		}
	)
)
line.add_yaxis("商家B",Faker.values())
line.set_global_opts(title_opts=opts.TitleOpts(title="折线图演示"))
line.render()

在这里插入图片描述
8.饼图

#饼图
##饼图
from pyecharts.faker import Faker 
from pyecharts.charts import Pie
from pyecharts import options as opts

pie = Pie()
pie.add("",[list(z) for z in zip(Faker.choose(),Faker.values())])
#[(key1,value1),(key2,value2)]
pie.set_global_opts(title_opts=opts.TitleOpts(title="饼状图"))
pie.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:{c}"))
pie.render()

在这里插入图片描述
9.带涟漪特效散点图

#带涟漪特效散点图
from pyecharts.faker import Faker 
from pyecharts.charts import EffectScatter
from pyecharts import options as opts
from pyecharts.globals import SymbolType


effect_scatter = EffectScatter()
effect_scatter.add_xaxis(Faker.choose())
effect_scatter.add_yaxis(
	"",
	Faker.values(),
	symbol=SymbolType.ARROW) 
effect_scatter.set_global_opts(title_opts=opts.TitleOpts(title="EffectScatter"))
effect_scatter.render()

在这里插入图片描述
10.漏斗图(求转化率)

#漏斗图
from pyecharts.faker import Faker 
from pyecharts.charts import Funnel
from pyecharts import options as opts

funnel = Funnel()
funnel.add("转化率",
	[list(z) for z in zip(Faker.choose(),Faker.values())],
	label_opts=opts.LabelOpts(position="inside"))
funnel.set_global_opts(title_opts=opts.TitleOpts(title="Funnel"))
funnel.render()

在这里插入图片描述
11.地理坐标系

#地理坐标系
from pyecharts.faker import Faker 
from pyecharts.charts import Geo
from pyecharts import options as opts

geo = Geo()
geo.add_schema(maptype="china")
geo.add("geo",[list(z) for z in zip(Faker.provinces,Faker.values())])
geo.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
geo.set_global_opts(
	visualmap_opts=opts.VisualMapOpts(),
	title_opts=opts.TitleOpts(title="yanshi"),
	)
geo.render()

在这里插入图片描述
12水球图

#水球图
from pyecharts.faker import Faker 
from pyecharts.charts import Liquid
from pyecharts import options as opts

liquid =Liquid()
liquid.add("liquid",[0.3,0.5,0.47])
liquid.set_global_opts(title_opts=opts.TitleOpts(title="shuiqiu"))
liquid.render

在这里插入图片描述

以上便是
数据分析的第三部分内容
后续将会持续更新excel,ppt,爬虫,人工智能
等相关内容,敬请关注

发布了28 篇原创文章 · 获赞 25 · 访问量 2041

猜你喜欢

转载自blog.csdn.net/AI_LINNGLONG/article/details/104396302