Bokeh,为数据赋予生命的可视化神器!
Python数据可视化库多的数不胜数,matplotlib、seaborn这些老面孔你肯定都听说过。不过今天咱要聊的这个Bokeh,简直就是个宝藏。它不仅能画出漂亮的图表,还能搞出交互效果,让枯燥的数据活灵活现。老实说,第一次用它时我都惊呆了。
安装Bokeh贼简单,一行代码搞定:
pip install bokeh
来个最基础的散点图试试水:
from bokeh.plotting import figure, show
# 创建画布
p = figure(width=400, height=400, title=“我的第一个Bokeh图”)
# 画散点图
p.circle([1, 2, 3, 4, 5], [2, 5, 8, 2, 7], size=10)
# 显示图表
show(p)
运行完这段代码,浏览器会自动打开一个网页,看到一个可以缩放、平移的散点图,不得不说这体验相当丝滑。
Bokeh最强的地方就是交互功能。给大家变个魔术:
from bokeh.plotting import figure, show
from bokeh.models import HoverTool
# 创建带悬停工具的画布
p = figure(width=500, height=400, title=“买菜价格走势”)
p.add_tools(HoverTool(tooltips=[(“日期”, “@x”), (“价格”, “@y”)]))
# 数据
dates = ['周一', '周二', '周三', '周四', '周五']
prices = [10, 12, 9, 13, 11]
# 画线
p.line(dates, prices, line_width=2)
p.circle(dates, prices, size=10, fill_color=“white”)
show(p)
鼠标放到数据点上,价格和日期就跳出来了,这不比死板的静态图表有意思多了?
温馨提示:HoverTool
里的@x
和@y
是数据源的列名,可以根据实际数据修改。
一页放多个图表?小菜一碟:
from bokeh.layouts import row, column
from bokeh.plotting import figure, show
# 创建两个图表
p1 = figure(width=300, height=300, title=“图表1”)
p1.circle([1,2,3], [4,5,6])
p2 = figure(width=300, height=300, title=“图表2”)
p2.line([1,2,3], [2,4,6])
# 横着放
show(row(p1, p2))
row
和column
随便组合,想怎么排就怎么排,跟搭积木一样好玩。
要想图表好看,配色是关键:
from bokeh.palettes import Spectral6
from bokeh.plotting import figure, show
p = figure(width=400, height=400)
# 用不同颜色画多条线
for i in range(6):
p.line([1,2,3,4], [i*2, i*3, i*4, i*5],
line_color=Spectral6[i], legend_label=f“线{i+1}”)
p.legend.click_policy=“hide” # 点击图例可以显示/隐藏对应的线
show(p)
Spectral6
是Bokeh内置的配色方案,还有很多其他好看的配色可以选。
保存图表也超简单,加一行export_png(p, filename='my_plot.png')
就搞定了。不过得先装个selenium
包。
掌握这些基础用法,已经能画出不少漂亮的图表了。Bokeh还有更多高级功能等着去探索,比如添加按钮、滑块这些控件,做出交互式仪表盘。
做数据分析的时候,我现在基本都用Bokeh。不为别的,就图它能让枯燥的数据说话。要是你也想让你的数据活起来,Bokeh绝对值得一试。