Pyecharts(一) —— 配置项图表类型

news/2024/11/29 19:31:27/

Python数据可视化

  • Pyecharts(一) —— 配置项&图表类型
    • 一、图形参数配置
      • 1.1 全局配置项
      • 1.2 系列配置项
      • 1.3 运行环境
    • 二、图表类型
      • 2.1 直角坐标系图表
      • 2.2 地理坐标系图表
      • 2.3 树型图表
      • 2.4 3D图表
      • 2.4 组合图表
      • 2.5 其他图表(如Page)

Pyecharts(一) —— 配置项&图表类型

大家可以关注知乎或微信公众号的share16,我们也会同步更新此文章。

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

一、图形参数配置

   图形的参数配置是数据可视化的基础,pyecharts中的参数配置比较简单,可以分为全局配置项和系列配置项, 配置项的参考链接🔗。

1.1 全局配置项

   全局配置项,位于此文档中(/lib/python3.10/site-packages/pyecharts/options /global_options.py),可用set_global_options设置。

  • 基本元素配置项:主要包括InitOpts(初始化:含画布高/宽度、网页标题、图表主题、背景颜色等)、ToolBoxFeatureOpts(工具箱工具:含保存图片、配置项还原等)、ToolboxOpts(工具箱:含是否显示工具栏组件、工具栏icon的布局朝向等)、TitleOpts(标题:含主/副标题文本等)、LegendOpts(图例:含图例类型等)等;
  • 坐标轴配置项:主要包括AxisLineOpts(坐标轴轴线:含是否显示坐标轴、轴线是否在另一个轴的0刻度上等)、AxisTickOpts(坐标轴刻度:含是否显示刻度、坐标轴刻度长度等)、AxisOpts(坐标轴:含坐标轴类型、名称、刻度最小/大值等)等;
  • 原生图形配置项:主要包括GraphicGroup、GraphicItem等;

1.2 系列配置项

   系列配置项,位于此文档中(/lib/python3.10/site-packages/pyecharts/options /series_options.py),可用set_series_options设置。

  • 样式类配置项:主要包括ItemStyleOpts(图元样式:含图形颜色、阴线图形颜色等)、TextStyleOpts(文字样式:含文字颜色、字体、大小等)、LabelOpts(标签:含是否显示标签、标签文字的设置等)等;
  • 标记类配置项:主要包括MarkPointItem(标记点数据项)、MarkLineItem(标记线数据项)等;
  • 其他类配置项:主要包括EffectOpts(涟漪特效)、AreaStyleOpts(区域填充样式)等;

1.3 运行环境

   在可视化分析中,pyecharts可以在Jupyter Notebook和Jupyter Lab环境中运行;还可以生成HTML和图片

  • 在Jupyter Notebook中运行:如b.render_notebook()等;
  • 在Jupyter Lab中运行:如bar.load_javascript()、bar.render_notebook()等;
  • 生成HTML:如bar.render(‘xxx.html’)等;
  • 生成图片:要提前安装selenium、snapshot_selenium包,代码如下
from pyecharts.render import make_snapshot
from snapshot_selenium import snapshot
make_snapshot(snapshot,t.render(),'t.png',browser='Safari') 
"""
若使用的是谷歌,browser='Chrome'
勾选浏览器菜单栏:开发-允许远程自动化
"""

二、图表类型

   在pyecharts中,根据图表的调用方法、数据源格式的不一样,可大致分为以下几类(图表类型的参考链接🔗):

  • 直角坐标系图表:如折线图、柱状图、散点图、箱形图、热力图、K线图等;
  • 地理坐标系图表:如Geo(地理坐标图)、Map(区域地图)、BMap(百度地图)等;
  • 树型图表:如树图、矩形树图等;
  • 3D图表:如3D柱状图、3D折线图、3D曲面图等;
  • 组合图表:如时间线轮播多图、顺序多图、并行多图等;
  • 其他图表:如日历图、漏斗图、仪表盘、饼图、极坐标图、雷达图、旭日图、词云等;

2.1 直角坐标系图表

   以柱状图为例,此外还有:xy轴翻转、层叠多图(将多个直角坐标系的图表层叠到一个坐标轴中进行展示)。

from pyecharts.charts import Bar,Line
import pyecharts.options as optsx = ['Apple', 'Huawei', 'Xiaomi', 'Oppo', 'Vivo']
y1 = [123, 153, 89, 107, 98]
y2 = [102, 135, 88, 100, 79]b = Bar()
b.add_xaxis(x)
b.add_yaxis(series_name='y1',y_axis=y1)
b.add_yaxis(series_name='y2',y_axis=y2)
b.set_global_opts(title_opts=opts.TitleOpts('不同商家各品牌的手机销量',padding=[10,60]))
b.set_series_opts(label_opts=opts.LabelOpts(position='insideTop'))
b.render_notebook()''' xy轴翻转 '''
b.reversal_axis()
b.render_notebook()

在这里插入图片描述
在这里插入图片描述

from pyecharts.charts import Bar,Line
import pyecharts.options as optsx = ['Apple', 'Huawei', 'Xiaomi', 'Oppo', 'Vivo']
y1 = [123, 153, 89, 107, 98]
y2 = [102, 135, 88, 100, 79]
rate = [1.21, 1.13, 1.01, 1.07, 1.24]b = (Bar().add_xaxis(x).add_yaxis('y1',y1,stack='a1',bar_width=50,).add_yaxis('y2',y2,stack='a1',bar_width=50).extend_axis(yaxis=opts.AxisOpts(name='比率',position='right')).extend_axis(yaxis=opts.AxisOpts(name='销量',position='left')).set_series_opts(label_opts=opts.LabelOpts(position='insideTop')) )l = (Line().add_xaxis(x).add_yaxis('比率',rate,yaxis_index=1,z=2))b.overlap(l) #层叠多图
b.render_notebook()

在这里插入图片描述

2.2 地理坐标系图表

   地理图表中的参数maptype的取值,可查看此文档(/lib/python3.10/site-packages/pyecharts/datasets/map_filenames.json)。

   以Map、Geo为例:

''' Map '''
from pyecharts.charts import Map
import pyecharts.options as optsdata = [('广东',61),('湖北',85),('湖南',115),('四川',137),('重庆',119),('河北',80),\('黑龙江',66),('浙江',117),('山西',52),('安徽',99),('河南',101),('山东',75),('西藏',53)]
map = Map()# 关闭鼠标缩放和平移漫游,不显示红点
map.add('',data,maptype='china',is_roam=False,is_map_symbol_show=False)
# 视觉组件是必须的,需通过视觉组件的颜色来展示数据大小
map.set_global_opts(visualmap_opts=opts.VisualMapOpts(max_=120))map.render_notebook()

在这里插入图片描述

''' Geo '''
from pyecharts.charts import Geo
import pyecharts.options as optsdata = [('广东',61),('湖北',85),('湖南',115),('四川',137),('重庆',119),('河北',80),\('黑龙江',66),('浙江',117),('山西',52),('安徽',99),('河南',101),('山东',75),('西藏',53)]
geo = Geo()# is_roam:关闭鼠标缩放和平移漫游
# type_取值有scatter、effectScatter、heatmap、lines等
geo.add_schema(maptype='china',is_roam=False)
geo.add('',data,type_='heatmap')# 视觉组件是必须的,需通过视觉组件的颜色来展示数据大小
geo.set_global_opts(visualmap_opts=opts.VisualMapOpts(max_=120))geo.render_notebook()

在这里插入图片描述

2.3 树型图表

''' Tree '''
from pyecharts.charts import Tree
import pyecharts.options as optsdata = [{'children':[{'name':'B'},{'children':[{'children':[{'name':'I'}],'name':'E'},{'name':'F'}],'name':'C'},{'children':[{'children':[{'name':'J'}, {'name':'K'}],'name':'G'},{'name':'H'}],'name':'D'}],'name':'A'}]tree = Tree()
tree.add('',data)
tree.render_notebook()

在这里插入图片描述

2.4 3D图表

''' Bar3D '''
from pyecharts.charts import Bar3D
import pyecharts.options as optsd = [['Apple','s1',123],['Huawei','s1',153],['Xiaomi','s2',89],['oppo','s2',107]]b3d = Bar3D()
b3d.add('',d,)
b3d.set_global_opts(visualmap_opts=opts.VisualMapOpts(max_=160))
b3d.render_notebook()

在这里插入图片描述

2.4 组合图表

from pyecharts import options as opts
from pyecharts.charts import Bar,Timeline
from pyecharts.faker import Faker
import randomattr = Faker.choose()
t1  = Timeline()# 创建 Timeline对象
for i in range(2000,2022):attr1 = random.shuffle(list(attr)) #将序列的所有元素随机排序bar = (Bar().add_xaxis(random.sample(attr,len(attr))).add_yaxis('Data',Faker.values(),label_opts=opts.LabelOpts(position = 'right')).reversal_axis().set_global_opts(title_opts = opts.TitleOpts("{}".format(i),pos_left = '50%'),\legend_opts = opts.LegendOpts(pos_right = '10%')))t1.add(bar,'{}年'.format(i))
# t1.add_schema 可设置播放时间等参数
t1.render_notebook()

在这里插入图片描述

2.5 其他图表(如Page)

   其他图表,有日历图Calendar、漏斗图Funnel、仪表盘Gauge、饼图Pie、极坐标图Polar、雷达图Radar、旭日图Sunburst、词云WordCloud等;其使用方法,详见上述链接。

''' 
DraggablePageLayout : 是令每个模块可以被任意拖动、缩放,便于人工布局;
SimplePageLayout : 是令每个模块自动水平居中对齐;
若不指定的话,所有模块就会靠左对齐;
'''p = Page(layout=Page.DraggablePageLayout)
p.add(p1,p2)
p.render('hh.html') 
p.render_notebook()p.save_resize_html(source='hh.html',cfg_file='/XXXXXX/chart_config.json',dest='/XXXXXX/chart.html')''' 
使用浏览器打开 hh.html文件,对图表进行拖拉/调整位置或大小;
调整到一个适合的布局时,点击左上方的 Save Config按钮,下载chart_config.json配置文件;
source:生成的html文件名,如上;
cfg_file:下载的配置文件(chart_config.json)的地址
dest:要生成的新的html文件的路径
''' 

谢谢大家 🌹


http://www.ppmy.cn/news/785473.html

相关文章

【Web前端】CSS详解(上篇)

在学习CSS之前,你需要对HTML的知识有所了解! 一起学习CSS吧! 一.CSS简介 1.什么是CSS? 二.CSS语法 1.语法规则2.注释 三.CSS选择器 1.CSS的id选择器2.CSS的class选择器 四.CSS创建 1.外部样式表2.内部样式表3.内联样式4.多重样式…

css之 vertical-align用法详解

目录 基本知识默认例子1、baseline 基线对齐2、上标 super 和 下标 sub 2.1 sub2.2 super 3、top 和 bottom 3.1 top3.2 bottom 4、text-top 和 text-bottom 4.1 text-top4.2 text-bottom 5、middle 中线对齐6、% 百分比7、具体的值 基本知识 vertical-align 属性设置元素的…

系列 | 漫谈数仓第四篇NO.4 『数据应用』(BIOLAP)

点击上方蓝色字体,置顶/星标哦 目前10000人已关注加入我们 本文目录CONTENTS ☞ 01.可视化BI工具 [ 开源BI,商业BI,传统BI ] ☞ 02.OLAP科普 [ ROLAP MOLAP HOLAP ] ☞ 03.OLAP引擎 [ Kylin Druid Presto Impala Kudu ADB ES .. ] 本文之前…

Html与CSS基础知识篇(Html标签语法篇2)

前言&#xff1a;上章我们主要介绍Html中常用到的一些标签&#xff0c;最后我们提到了表格<table>标签&#xff0c;它默认显示没有表格线&#xff0c;但是我们常见到的都会有表格线的&#xff0c;那样既美观也实用。下面我们着重介绍一下CSS样式 用CSS样式&#xff0c;为…

技术合伙人必备攻略---app开发技术栈调研--多种方案对比--uniapp学习路线

app开发技术方案对比 app开发主要有几种技术方案如下: 原生开发 原生开发简介 原生(native)开发从定义上来说 一般是指用原生开发语言开发,原生开发语言就是开发整个系统时使用的编程语言。 对于iOS来说就是Objective C,对于Android来说…不太好说,因为Android用的Lin…

2021-10-20 HTML中的常用标签及属性

<body> :bgcolor:设置网页背景颜色&#xff0c;background:设置背景图片。<p>&#xff1a;段落标签,align:水平对齐方式。有left&#xff0c;center&#xff0c;right。<h1>&#xff1a;标题&#xff0c;有h1~h6&#xff0c;h1最大。<font>字体标签&am…

【新媒体 | 自媒体 运营】虚拟素材(图片,字体,音频,视频)商用及CC版权相关问题

文章目录 1、常见问题1.1 常见的版权问题1.2 常见的版权协议 2、可商用素材2.1 可商用图片2.2 可商用字体2.3 可商用音频2.4 可商用视频 1、常见问题 1.1 常见的版权问题 版权法的保护对象&#xff1f; 版权&#xff1a;作品的著作权&#xff0c;无需申请&#xff0c;自动保护…

silk lobe资源公众号_资源合集 | 霞鹜公众号字体资源合集(截至 2019.11.30)

11 月 十一月 | iOS内置韩文字体,Apple SD Gothic Neo 锤子T黑 | Smartisan 与方正合作定制的UI黑体。 Emoji | 鸽了好久的可爱 Emoji 字体,移植到安卓手机。 沙扬娜拉 | 岩田仿宋,复古聚珍仿宋风格 返璞归真 | Android 系统默认字体 Roboto,去除 fi 连写,时间冒号居中 模…