Python数据可视化

您所在的位置:网站首页 seaborn词云图 Python数据可视化

Python数据可视化

2023-03-13 13:43| 来源: 网络整理| 查看: 265

导读:Python数据可视化的库有很多,常见的有matplotlib、pyplot、Seaborn、pyecharts等。

pyecharts是一款将python与echarts相结合的数据可视化库,可用于制作 Echarts 图表,输出动态的可视化图表,。Echarts 是百度开源的一个数据可视化 JS 库。

以下基于win系统的Python3版本pyecharts0.5.10进行。

pyecharts中文官方文档:https://pyecharts.org/#/zh-cn/intro

本笔记中部分所列图形案例代码可在文末附的参考资源中找到。

目录:

pyecharts库安装:

常用国内镜像源:

基本语法(通过案例学习 ):

使用pyecharts-snapshot插件保存图形:

常用图形函数:

1、柱状图/条形图 [堆叠(柱状)图] Bar.add()

2、饼图/环形图/玫瑰图Pie.add()

3、折线图/面积图Line.add()

4、极坐标系Polar.add()

5、散点图/三维气泡图scatter.add()

6、带有闪烁动画的散点图EffectScatter.add()

7、箱体图Boxplot.add()

8、雷达图Rader.add()

9、漏斗图Funnel.add()

10、仪表盘Gauge.add()

11、词云图WordCloud.add()

12、地理坐标系Geo.add()

13、地图Map.add()

14、关系图Grap.add()

15.水球图Liquid.add()

16、平行坐标系Parallel.add()

17、桑基图Sankey.add()

18.自定义图形Grid.add()

19、图标叠加 Overlap.add()

20、同一网页按顺序展示多个图page.add()

21、时间线轮播多张图timeline

主题配置

(1)不改变主题参数

(2)更改主题

整个页面使用同一个主题:

基本配置

1.在Bar()函数里添加的参数

2.在add()函数里添加的参数

更多示例、参考学习资源/博客:

pyecharts库安装:

pyEcharts目前有0.5及以下版本和1.0以上版本,新版的pyecharts发生了许多变化。 最为明显的是以前调整变量的命令现在都发生了改变。网上大部分教程都是0.5及以下版本。这里使用清华镜像安装0.5.10

安装代码:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyecharts==0.5.10 常用国内镜像源: 清华大学:https://pypi.tuna.tsinghua.edu.cn/simple 阿里云:http://mirrors.aliyun.com/pypi/simple/ 中国科学技术大学大学:https://pypi.mirrors.ustc.edu.cn/simple/ 豆瓣:http://pypi.douban.com/simple/

使用镜像源的安装方法:

pip install -i https://pypi.doubanio.com/simple/ 包名 基本语法(通过案例学习 ): #导入柱状图bar from pyecharts import Bar #设置柱状图的主标题与副标题 bar=Bar("柱状图(标题)","一年的降水量和蒸发量(副标题)") #配置主题 bar.use_theme('dark')  # 设置背景色为“暗色”。需要设置主题背景色时调用use_theme() 函数 #设置x轴数据 columns=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"] #设置y轴数据 data_1=[2.0,4.9,7.0,23.2,25.6,76.7,135.6,162.2,32.6,20.0,6.4,3.3] data_2=[2.6,5.9,9.0,26.4,28.7,70.7,175.6,182.2,48.7,18.8,6.0,2.3] #添加柱状图的数据及配置项 bar.add(     "降水量",columns,data_1,  #绘图关键信息:图例名称(注释==label),x轴数据,y轴数据     mark_line=["average"],  #标记平均值     mark_point=["max","min"],  #标记极值     is_stack =False,  #数据堆叠,同个类目轴上系列配置相同的stack 值可以堆叠放置。is_stack = True表示堆叠在一起绘制堆叠(柱状)图     bar_category_gap ='20%',  #类目轴柱状距离,默认20%     is_more_utils=True #提供更多实用工具按钮 ) bar.add(      "蒸发量",columns,data_2,     mark_line=["average"],     mark_point=["max","min"],     is_stack =False,       bar_category_gap ='20%',      is_more_utils=True     # is_convert = True , X 轴与 Y 轴交换,将柱状图改为条形图 ) # bar.print_echarts_options()  # 该行打印配置项,方便调试时使用 #生成本地文件(默认为.html文件) bar.render('./picture1.html') #将html文档命名为picture1

运行结果图:

Python数据可视化——pyecharts学习笔记

关键代码解读:

add() : 主要方法,用于添加图表的数据和设置各种配置项

render():默认将会在根目录下生成一个 render.html 的文件,支持 path 参数,设置文件保存位置,如 render(r"e:\my_first_chart.html"),文件用浏览器打开。 

print_echarts_options() :打印输出图表的所有配置项

show_config() :打印输出图表的所有配置项

Note: 可以按右边的下载按钮将图片下载到本地,如果想要提供更多实用工具按钮,请在 add() 中设置 is_more_utils 为 True

使用pyecharts-snapshot插件保存图形:

如果想直接将图片保存为 png, pdf, gif 格式的文件,可以使用 pyecharts-snapshot。 使用该插件请确保你的系统上已经安装了 Nodejs 环境。

1._幻像: 康达安装幻象

2.* pyecharts 快照 : pip 安装 pyecharts 快照

2.调用 render 方法 bar.render(path='snapshot.png') 文件结尾可以为 svg/jpeg/png/pdf/gif。 请注意,svg 文件需要你在初始化 bar 的时候设置 renderer='svg'。

import random from pyecharts import Bar #from pyecharts import configure #configure(global_theme='vintage') X_AXIS = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"] bar = Bar("我的第一个图表", "这里是副标题") bar.use_theme("roma") bar.add("商家A", X_AXIS, [random.randint(10, 100) for _ in range(6)]) bar.add("商家B", X_AXIS, [random.randint(10, 100) for _ in range(6)]) bar.render() bar.render(path='snapshot.png') 常用图形函数: 1、柱状图/条形图 [堆叠(柱状)图] Bar.add() 2、饼图/环形图/玫瑰图Pie.add() Python数据可视化——pyecharts学习笔记 3、折线图/面积图Line.add() 4、极坐标系Polar.add() Python数据可视化——pyecharts学习笔记 Python数据可视化——pyecharts学习笔记 5、散点图/三维气泡图scatter.add() 6、带有闪烁动画的散点图EffectScatter.add() Python数据可视化——pyecharts学习笔记 7、箱体图Boxplot.add() 8、雷达图Rader.add() 9、漏斗图Funnel.add() 10、仪表盘Gauge.add() Python数据可视化——pyecharts学习笔记 11、词云图WordCloud.add() 12、地理坐标系Geo.add() from pyecharts import Geo data = [     ("海门", 9),("鄂尔多斯", 12),("招远", 12),("舟山", 12),("齐齐哈尔", 14),("盐城", 15),     ("赤峰", 16),("青岛", 18),("乳山", 18),("金昌", 19),("泉州", 21),("莱西", 21),     ("日照", 21),("胶南", 22),("南通", 23),("拉萨", 24),("云浮", 24),("梅州", 25)...] geo = Geo( "全国主要城市空气质量", "data from pm2.5", title_color="#fff", title_pos="center", width=1200, height=600, background_color='#404a59') attr, value = geo.cast(data) geo.add("", attr, value, visual_range=[0, 200], visual_text_color="#fff", symbol_size=15, is_visualmap=True) geo.show_config() geo.render() Python数据可视化——pyecharts学习笔记 from pyecharts import Geo data = [("海门", 9), ("鄂尔多斯", 12), ("招远", 12), ("舟山", 12), ("齐齐哈尔", 14), ("盐城", 15)] geo = Geo("全国主要城市空气质量", "data from pm2.5", title_color="#fff", title_pos="center",           width=1200, height=600, background_color='#404a59') attr, value = geo.cast(data) geo.add("", attr, value, type="effectScatter", is_random=True, effect_scale=5) geo.show_config() geo.render() Python数据可视化——pyecharts学习笔记 Python数据可视化——pyecharts学习笔记 13、地图Map.add()

【数据接口:pyecharts地图数据接口】安装下列地图数据包

pip install echarts-countries-pypkg pip install echarts-china-provinces-pypkg pip install echarts-china-cities-pypkg pip install echarts-china-counties-pypkg pip install echarts-china-misc-pypkg pip install echarts-united-kingdom-pypkg

Map.add() 方法签名

add(     name,attr,value,     maptype = 'china',     is_roam = True,     is_map_symobol_show = True     **kwargs     )

maptype -> str: 地图类型,支持China,world,北京,天津,上海,湖南,湖北,……363个二线城市

is_roam -> bool/str 是否开启鼠标缩放,漫游等,默认 True,若只想开启缩放/平移 设置scale/move 设置成 True 开启

is_map_symobol_show 是否显示地图标记,默认 True。

案例代码:

from pyecharts import Map value = [155,10,66,78] attr = ['汕头市','汕尾市','揭阳市','肇庆市'] map = Map('广东地图示例',width = 1200,height = 600) map.add('',attr,value,maptype = '广东',         is_visualmap = True,         visual_text_color = '#000',         is_label_show = True         ) map.render('./html/map02.html') Python数据可视化——pyecharts学习笔记 14、关系图Grap.add() Python数据可视化——pyecharts学习笔记 15.水球图Liquid.add() Python数据可视化——pyecharts学习笔记 Python数据可视化——pyecharts学习笔记 16、平行坐标系Parallel.add() Python数据可视化——pyecharts学习笔记 17、桑基图Sankey.add() Python数据可视化——pyecharts学习笔记 18.自定义图形Grid.add()

(以上下或左右形式绘图)

Python数据可视化——pyecharts学习笔记 19、图标叠加 Overlap.add()

(在同一个图里绘图)

利用第一张图表为基础,将后面的数据画在第一张图上。Line/ Bar/ Kline/ Scatter/ EffectScatter

#EffectScatter + Line 叠加 from pyecharts import Line,EffectScatter,Overlap attr = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"] v1 = [2.0,4.9,7.0,23.2,25.6,76.7,135.6,162.2,170.1,178.3,175.4,176.5] line = Line('线性_闪烁图示例') line.add('',attr,v1,is_random = True) es = EffectScatter() es.add('',attr,v1,effect_scale=8)  #闪烁 overlop = Overlap() overlop.add(line)       #必须先添加line,在添加es overlop.add(es) overlop.render() Python数据可视化——pyecharts学习笔记 Python数据可视化——pyecharts学习笔记 20、同一网页按顺序展示多个图page.add() Python数据可视化——pyecharts学习笔记 21、时间线轮播多张图timeline Python数据可视化——pyecharts学习笔记 主题配置

echarts 自带 dark 主题, pyecharts 也自带了 dark。 echarts-themes-pypkg 提供了 vintage, macarons, infographic, shine 和 roma 主题。

安装:

pip install echarts-themes-pypkg (1)不改变主题参数 from pyecharts import Bar v1 = [20,25,35,24] str1 = ['回忆','生活','现实','失败'] bar1 = Bar('testBar_theme','Theme') bar1.add('test01',str1,v1,is_more_utils = True) bar1.render()

显示效果:

Python数据可视化——pyecharts学习笔记 (2)更改主题

单个图换主题:

from pyecharts import Bar v1 = [20,25,35,24] str1 = ['回忆','生活','现实','失败'] bar = Bar('testBar_theme','Theme') bar.add('test01',str1,v1,is_more_utils = True) # 更换单个图表主题 # 其他主题:vintage,macarons,infographic,shine,roma bar.use_theme("vintage") bar.render()

显示效果:

Python数据可视化——pyecharts学习笔记 整个页面使用同一个主题: from pyecharts import configure configure(global_theme='vintage')

显示效果:

Python数据可视化——pyecharts学习笔记 基本配置 1.在Bar()函数里添加的参数

title -> str

主标题文本,支持 \n 换行,默认为 “”

subtitle -> str

副标题文本,支持 \n 换行,默认为 “”

width -> int

画布宽度,默认为 800(px)

height -> int

画布高度,默认为 400(px)

title_color -> str

主标题文本颜色,默认为 ‘#000’

subtitle_color -> str

副标题文本颜色,默认为 ‘#aaa’

background_color -> str

画布背景颜色,默认为 ‘#fff’

page_title -> str

指定生成的 html 文件中 标签的值。 默认为’Echarts’

renderer -> str

指定使用渲染方式,有 ‘svg’ 和 ‘canvas’ 可选,默认为 ‘canvas’。 3D 图仅能使用 ‘canvas’(canvas和svg区别请参考:https://blog.csdn.net/helloword_chen/article/details/49788309)

具体使用代码:

from pyecharts import Bar v1 = [20,25,35,24] str1 = ['回忆','生活','现实','失败'] # 默认Bar()第一个参数为 主标题,第二个参数为副标题 bar1 = Bar('testBar_theme','Theme',page_title  = '我的柱状图',title_color  ='#3367FF',subtitle_color= '#3367FF',background_color = '#5AB5FF') bar1.add('vintage',str1,v1,is_more_utils = True) bar1.render(r"H:\PyCoding\FlaskCoding\Test_all\test0608\test01.html")

显示效果

Python数据可视化——pyecharts学习笔记 2.在add()函数里添加的参数

is_random -> bool

是否随机排列颜色列表,默认为 False

label_color -> list

自定义标签颜色。 全局颜色列表,所有图表的图例颜色均在这里修改。 如 Bar 的柱状颜色,Line 的线条颜色等等。

is_label_show -> bool

是否正常显示标签,默认不显示。 标签即各点的数据项信息

label_pos -> str

标签的位置,Bar 图默认为’top’。 有’top’, ‘left’, ‘right’, ‘bottom’, ‘inside’,’outside’可选

label_text_color -> str

标签字体颜色,默认为 “#000”

label_text_size -> int

标签字体大小,默认为 12

is_random -> bool

是否随机排列颜色列表,默认为 False

label_formatter -> 功能

回调函数使用

def label_formatter(params):       return params.value + ' [Good!]' (params: Object|Array) => string   参数 params 是 formatter 需要的单个数据集。格式如下:   {       componentType: 'series',       // 系列类型       seriesType: string,       // 系列在传入的 option.series 中的 index       seriesIndex: number,       // 系列名称       seriesName: string,       // 数据名,类目名       name: string,       // 数据在传入的 data 数组中的 index       dataIndex: number,       // 传入的原始数据项       data: Object,       // 传入的数据值       value: number|Array,       // 数据图形的颜色       color: string,   }

具体使用代码

from pyecharts import Bar def label_formatter(params):     return params.data +'分' v1 = [20,25,35,24] attr = ['回忆','生活','现实','失败'] bar = Bar('testBar_color','Theme',page_title  = '我的柱状图') # 注意 label_color的属性值为 list(列表) bar.add("test_X", attr, v1, is_label_show=True,label_color=['#5AB5FF'],label_text_color ='#3367FF',label_formatter=label_formatter) bar.render()

显示效果

Python数据可视化——pyecharts学习笔记 更多示例、参考学习资源/博客:

1、Python 数据可视化?

2、Python + PyEcharts——数据可视化

3、Python可视化神器——pyecharts的超详细使用指南!

4、【Python | 做更好的数据可视化】pyecharts进阶用法(一)

5、pyecharts学习笔记



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3