Bokeh,为数据赋予生命的可视化神器!

文摘   2024-11-17 15:27   重庆  

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))

rowcolumn随便组合,想怎么排就怎么排,跟搭积木一样好玩。


要想图表好看,配色是关键:


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绝对值得一试。

CQTV新视界
重庆广电城市TV旗下优质内容品牌,感谢您的关注!
 最新文章