可视化工具不知道怎么选?深度评测5大Python数据可视化工具(1)

本文对比了Pyecharts、Matplotlib、Plotly、Bokeh和Seaborn这四个Python可视化库在功能、美观度、交互性、中文支持和资料丰富度等方面的优缺点,强调了各自适用场景和学习曲线。
摘要由CSDN通过智能技术生成

默认生成的两系列柱状图如下:

可以看到,该图支持交互式展示与点击,默认生成的样式也较为美观,并且Pyecharts有详细的中文文档与demo,网上关于Pyecharts的讨论也较多,如果是刚接触的读者也能比较快的上手。当然如果对默认样式不满意的话,可以进行一些调整,由于文档十分完整,所以代码修改起来并不困难,比如可以修改主题并设置一些标记线、DataZoom,添加小组件等

总体来说,由于Pyecharts是基于Echarts制作的,因此生成图表比较美观,并且官方中文文档对相关设置讲解非常详细,有关Pyecharts的讨论也非常多,所以如果在使用过程中有相关疑问也很容易通过检索找到答案,但遗憾的是不支持使用pandas中的series数据,需要转换为list才可以使用,不过整体还是让我很满意的一款可视化库。主观评分:85

02

Matplotlib

Matplotlib应该是最广泛使用的Python可视化工具,支持的图形种类非常多,使用Matplotlib制作相同效果的图需要先导入相关库,并且并不支持原生中文所以还要设置下中文显示

import matplotlib.pyplot as plt

import numpy as np

plt.rcParams[‘font.sans-serif’] = [‘SimHei’]

接着就是绘图,但是相比较于pyecharts大多是往写好的代码里面添加数据、配置不同,matplotlib大多数需要我们自己写代码,所以代码量可能稍多一点

width = 0.35

x1 = np.arange(len(x))

fig, ax = plt.subplots()

rects1 = ax.bar(x1 - width/2, y1, width, label=‘商家A’)

rects2 = ax.bar(x1 + width/2, y2, width, label=‘商家B’)

ax.set_title(‘Matplotlib—柱状图’)

ax.set_xticks(x1)

ax.set_xticklabels(x)

ax.legend()

plt.show()

最后生成的默认图像如下

默认配色不是很好看但也没有很难看,看起来更学术一点,但是不支持交互式点击查看等操作,虽然代码量更多一点,但是由于Matplotlib的火热,网上关于matplotlib的资料比Pyecharts要多很多,所以写代码与调整代码的过程也并不复杂,整体主观评分77分

03

Plotly

Plotly也是一款非常强大的Python可视化库,Plotly内置完整的交互能力及编辑工具,支持在线和离线模式,提供稳定的API以便与现有应用集成,既可以在web浏览器中展示数据图表,也可以存入本地拷贝。但是由于官方未提供中文文档,网上关于Plotly的教程也仅限于官方的一些demo,对于一些详细的参数设置并没有太多资料,首先还是先导入相关库并设置notebook显示

import plotly

import plotly.offline as py

import plotly.graph_objs as go

plotly.offline.init_notebook_mode(connected=True)

接下来是绘图代码,首先要对数据先进行处理,剩下的基础配置其实和Pyecharts比较类似

trace0 = go.Bar(

x = x,

y = y1,

name = ‘商家A’,

)

trace1 = go.Bar(

x = x,

y = y2,

name = ‘商家B’,

)

data = [trace0,trace1]

layout = go.Layout(

title={

‘text’: “Plotly-柱状图”,

‘y’:0.9,

‘x’:0.5,

‘xanchor’: ‘center’,

‘yanchor’: ‘top’})

fig = go.Figure(data=data, layout=layout)

py.iplot(fig)

默认样式生成的图如上,配色也不难看,并且可以看到是支持交互式操作的,同时是默认添加toolbox小组件,可以更方便的查看,支持30多种图形,总体来说还是比较优秀的一个可视化工具,但是如果真要熟练使用的话可能需要一点时间用于查找相关资料,因为网上关于Plotly的资料不多,大多是基本使用的简单教程,如果想查找一些细节的操作比如我为了查找让标题居中的方法,百度之后用Google在国外某论坛找到类似问题并找到设置,主观评分:76

04

Bokeh

Bokeh是一个专门针对Web浏览器的呈现功能的交互式可视化Python库。这是Bokeh与其它可视化库最核心的区别,它可以做出像D3.js简洁漂亮的交互可视化效果,但是使用难度低于D3.js,首先还是导入相关库

from bokeh.transform import dodge

import pandas as pd

from bokeh.core.properties import value

import numpy as np

import matplotlib.pyplot as plt

%matplotlib inline

from bokeh.io import output_notebook

output_notebook() # 导入notebook绘图模块

from bokeh.plotting import figure,show

from bokeh.models import ColumnDataSource# 导入图表绘制、图标展示模块 # 导入ColumnDataSource模块 # 导入dodge、value模块

相关依赖比上面三个要多出很多,并且Bokeh有自己的数据结构ColumnDataSource,所以要先对数据进行转换,接着就是创建画布、添加数据及设置

df = pd.DataFrame({‘商家A’:y1,‘商家B’:y2},

index = x_)

_x = [‘商家A’,‘商家B’]    # 系列名

data = {‘index’:x_}

for i in _x:

data[i] = df[i].tolist()# 生成数据,数据格式为dict

source = ColumnDataSource(data=data)# 将数据转化为ColumnDataSource对象

p = figure(x_range=x_, y_range=(0, 150), plot_height=350, title=“boken-柱状图”,tools=“crosshair,pan,wheel_zoom,box_zoom,reset,box_select,lasso_select”)

p.vbar(x=dodge(‘index’, -0.1, range=p.x_range), top=‘商家A’, width=0.2, source=source,color=“#718dbf”, legend=value(“商家A”))

p.vbar(x=dodge(‘index’,  0.1, range=p.x_range), top=‘商家B’, width=0.2, source=source,color=“#e84d60”, legend=value(“商家B”))# dodge(field_name, value, range=None) → 转换成一个可分组的对象,value为元素的位置(配合width设置)

p.xgrid.grid_line_color = None

p.legend.location = “top_left”

p.legend.orientation = “horizontal” # 其他参数设置

show§

可以看到,Bokeh做出来的图也是支持交互的,不并且样式之类的看上去还是比较舒服的,不过上面这张图是经过调整颜色的,因为默认不对两个系列进行区分颜色

Bokeh一个很明显的特点就是代码量较上面三个工具要多了很多,大多是在数据的处理上,并且和Plotly一样,有关bokeh相关的中文资料也不多,大多是入门型的基本使用与介绍,虽然从官方给出的图来看能作出很多比pyecharts更精美的图,但是查找相关参数的设置上将会耗费一定时间,主观评分71分。

05

Seaborn

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)

/img_convert/6c361282296f86381401c05e862fe4e9.png)

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注Python)

img
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值