5?款实用Python数据可视化工具你都了解嘛?( 三 )
from bokeh.transform import dodgeimport pandas as pd from bokeh.core.propertiesimport value import numpy as np import matplotlib.pyplot as plt %matplotlib inline from bokeh.io import output_notebookoutput_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 = http://news.hoteastday.com/a/{'index':x_} for i in _x: data[i] = df[i].tolist()# 生成数据 , 数据格式为dict source = ColumnDataSource(data=http://news.hoteastday.com/a/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 = Nonep.legend.location = ''top_left''p.legend.orientation = ''horizontal'' # 其他参数设置show(p)
本文插图
可以看到 , Bokeh做出来的图也是支持交互的 , 不并且样式之类的看上去还是比较舒服的 , 不过上面这张图是经过调整颜色的 , 因为默认不对两个系列进行区分颜色:
本文插图
Bokeh一个很明显的特点就是代码量较上面三个工具要多了很多 , 大多是在数据的处理上 , 并且和Plotly一样 , 有关Bokeh相关的中文资料也不多 , 大多是入门型的基本使用与介绍 , 虽然从官方给出的图来看能作出很多比Pyecharts更精美的图 , 但是查找相关参数的设置上将会耗费一定时间 。
- 主观评分:71分
本文插图
05 Seaborn
本文插图
从seaborn官网给出的标题就知道 , seaborn是为了统计图表设计的 , 它是一种基于Matplotlib的图形可视化库 , 也就是在Matplotlib的基础上进行了更高级的API封装 , 从而使得作图更加容易 。
在大多数情况下使用seaborn就能做出很具有吸引力的图 , 而使用atplotlib就能制作具有更多特色的图 , 还是我们的数据 , 使用seaborn制作首先需要导入相关库 , 由于是基于Matplotlib , 所以还是需要设置中文 。
import seaborn as sns import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei']接下来只要一行代码就能生成我们要的图 , 默认配色也没有显得很难看:
本文插图
相比上面四种工具 , 从代码量上来看是非常简洁的 , 不过还是要先将数据转换为DataFrame格式 , 这里没在代码中体现 , 但依旧是最简短的代码 , 同时并不支持交互 。
推荐阅读
- 下个10年,Go能取代Python成为开发者的首选语言吗?
- 安东尼·戴维斯|总决赛期间,巴特勒96投157分,浓眉哥98投150分,而詹皇是这数据
- 大数据&云计算长飞公司亮相2020中国国际信息通信展览会
- 电池|iPhone12电池小,真的续航差?看看真实的数据就明白了
- 金十数据|澳大利亚铁矿石对华出口会受影响吗?,中国1年买超6亿吨!煤炭之后
- 飞翔电竞|数据表明,他才是目前世界第一中单!,左手世界赛状态低迷
- 虎扑|媒体盘点其恐怖数据,前NBA球员马努特-波尔58岁生日
- 我是球委会|詹皇五项数据第一,小卡呢,过去5年的FMVP谁更强?阿杜得分最高
- 丁祖昱|数据中心成投资新风口“数字地产”受青睐
- 数据|4.9%:三季度经济强劲复苏
