匠心精神 - 良心品质腾讯认可的专业机构-IT人的高薪实战学院

咨询电话:4000806560

Python中的可视化库:使用Plotly和Bokeh实现交互可视化

Python中的可视化库:使用Plotly和Bokeh实现交互可视化

近年来,数据处理和可视化在各个行业中得到了广泛应用。Python作为一门流行的编程语言,也拥有众多优秀的数据可视化库。本文将介绍Python中的两个优秀的可视化库:Plotly和Bokeh,并演示如何使用它们实现交互可视化。

一、Plotly

Plotly是一个开源的数据可视化库,它支持多种编程语言,包括Python、R、JavaScript等。Plotly提供了基于Web的可视化工具,使得用户可以在网页上交互式地探索和展示数据。

1. 安装Plotly

在使用Plotly之前,需要先安装:

```python
pip install plotly
```

2. 绘制静态图

通过Plotly,可以轻松绘制出一张静态的图表。下面的代码演示了如何使用Plotly绘制一个简单的折线图:

```python
import plotly.express as px
import pandas as pd

# 创建数据
df = pd.DataFrame({
   "x": [1, 2, 3, 4, 5],
   "y": [1, 4, 2, 3, 7]
})

# 绘制折线图
fig = px.line(df, x="x", y="y", title='折线图')

# 显示图表
fig.show()
```

运行代码,可以在浏览器中看到生成的折线图,如下所示:

![plotly.png](https://i.loli.net/2022/01/01/CKX2hqYPyLO3M7p.png)

3. 实现交互式可视化

Plotly最大的特点就是可以实现交互式可视化,用户可以通过鼠标和键盘等方式与图表进行交互。下面的代码演示了如何使用Plotly实现一个交互式散点图:

```python
import plotly.express as px
import pandas as pd

# 创建数据
df = pd.DataFrame({
   "x": [1, 2, 3, 4, 5],
   "y": [1, 4, 2, 3, 7],
   "color": ['red', 'blue', 'green', 'yellow', 'black']
})

# 绘制散点图
fig = px.scatter(df, x="x", y="y", color="color", hover_data=['x', 'y'])

# 显示图表
fig.show()
```

运行代码,可以看到生成的交互式散点图。用户可以通过鼠标悬停在散点上,查看对应的x和y值。

![plotly2.png](https://i.loli.net/2022/01/01/9NAuPIsax3c2Jqy.png)

二、Bokeh

Bokeh是另一个优秀的Python数据可视化库,它专注于交互式可视化。与Plotly不同,Bokeh生成的图表不依赖于外部服务器,并且可以在离线模式下使用。

1. 安装Bokeh

在使用Bokeh之前,需要先安装:

```python
pip install bokeh
```

2. 绘制静态图

与Plotly类似,Bokeh也可以轻松绘制出一张静态图表。下面的代码演示了如何使用Bokeh绘制一个简单的柱状图:

```python
from bokeh.plotting import figure, show 
from bokeh.models import ColumnDataSource
import pandas as pd

# 创建数据
data = {
   "x": [1, 2, 3, 4, 5],
   "y": [1, 4, 2, 3, 7]
}

# 转换为DataFrame
df = pd.DataFrame(data)

# 将DataFrame转换为ColumnDataSource
source = ColumnDataSource(df)

# 创建Figure对象
p = figure(title="柱状图", x_axis_label='x', y_axis_label='y')

# 绘制柱状图
p.vbar(x='x', top='y', source=source, width=0.9)

# 显示图表
show(p)
```

运行代码,可以在浏览器中看到生成的柱状图,如下所示:

![bokeh.png](https://i.loli.net/2022/01/01/L3kGCaZ1j4FNY5b.png)

3. 实现交互式可视化

Bokeh的交互式可视化也非常强大。下面的代码演示了如何使用Bokeh实现一个交互式散点图:

```python
from bokeh.plotting import figure, show
from bokeh.models import ColumnDataSource
import pandas as pd

# 创建数据
data = {
   "x": [1, 2, 3, 4, 5],
   "y": [1, 4, 2, 3, 7],
   "color": ['red', 'blue', 'green', 'yellow', 'black']
}

# 转换为DataFrame
df = pd.DataFrame(data)

# 将DataFrame转换为ColumnDataSource
source = ColumnDataSource(df)

# 创建Figure对象
p = figure(title="散点图")

# 绘制散点图
p.scatter('x', 'y', color='color', source=source)

# 显示图表
show(p)
```

运行代码,可以看到生成的交互式散点图。用户可以通过鼠标悬停在散点上,查看对应的x和y值。

![bokeh2.png](https://i.loli.net/2022/01/01/W9dKrbGIjL8hS7T.png)

三、总结

本文介绍了Python中的两个优秀的可视化库:Plotly和Bokeh,并演示了如何使用它们实现静态图和交互式可视化。这两个库都有其独特的优点,可以根据具体需求选择使用。通过数据可视化,可以更加直观地展示数据,帮助人们更好地理解和分析数据。