• 周六. 4月 20th, 2024

Python 可视化详细用法

城主

12月 30, 2022 ,

Python 是一种流行的编程语言,它有许多不同的库和工具可以用于可视化数据。下面是几个常用的可视化库:

  1. Matplotlib:这是 Python 中最常用的可视化库,它可以生成各种静态图形,包括直方图、条形图、散点图和折线图等。
  2. Seaborn:这是一个在 Matplotlib 的基础上进行了更高级封装的可视化库,它提供了更多直接使用的可视化方法,并且能够绘制高质量的图形。
  3. Plotly:这是一个可以生成交互式图形的库,可以生成各种类型的图形,包括折线图、散点图、条形图和地图等。
  4. Bokeh:这是一个专门用于生成交互式图形的库,可以生成各种类型的图形,包括折线图、散点图、条形图和地图等。

下面是一个使用 Matplotlib 绘制简单直方图的示例代码:





import matplotlib.pyplot as plt

# 生成测试数据
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

# 使用 Matplotlib 绘制直方图
plt.bar(x, y)

# 显示图形
plt.show()

当然,除了上述四个库之外,还有许多其他的 Python 可视化库可以使用。下面是几个不太常见但也很有用的可视化库:

  1. Folium:这是一个专门用于生成地图的库,可以在地图上添加各种元素,包括点、线、区域等。
  2. Altair:这是一个基于 Vega-Lite 的可视化库,可以使用简单的声明式语法快速生成复杂的交互式图形。
  3. Pygal:这是一个专门用于生成矢量图形的库,可以生成许多类型的图形,包括折线图、散点图、条形图和饼图等。
  4. Gleam:这是一个专门用于生成交互式的散点图的库,可以通过点击、框选和悬浮等方式进行数据的可视化。

另外,如果你想在网页上展示可视化图形,还可以使用 D3.js 或者 Echarts 等 JavaScript 库。

在选择可视化库时,你需要考虑你的需求以及你的技能水平。如果你需要快速生成简单的图形,可以使用 Matplotlib 或者 Seaborn;如果你需要生成交互式图形,可以使用 Plotly 或者 Bokeh;如果你想要生成地图,可以使用 Folium;

如果你想要生成矢量图形,可以使用 Pygal;如果你想要生成交互式的散点图,可以使用 Gleam。

在使用这些库时,你需要先安装它们,可以使用 pip 命令进行安装,例如:





pip install matplotlib
pip install seaborn
pip install plotly
pip install bokeh
pip install folium
pip install altair
pip install pygal
pip install gleam

然后,你就可以在 Python 代码中导入并使用这些库了。例如,使用 Matplotlib 绘制直方图的代码如下:





import matplotlib.pyplot as plt

# 生成测试数据
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

# 使用 Matplotlib 绘制直方图
plt.bar(x, y)

# 显示图形
plt.show()

除了以上提到的可视化库之外,还有许多其他的 Python 可视化库可供使用。下面是几个不太常见但也很有用的可视化库:

  1. PyQtGraph:这是一个基于 PyQt5 的可视化库,提供了许多用于绘制交互式图形的工具,包括折线图、散点图、直方图和三维图形等。
  2. Vispy:这是一个基于 OpenGL 的可视化库,可以用于生成高性能的交互式图形,包括折线图、散点图、条形图和三维图形等。
  3. HoloViews:这是一个用于构建可视化应用程序的库,提供了许多简单的声明式函数,可以用于生成各种类型的图形,包括折线图、散点图、条形图和三维图形等。
  4. Gizeh:这是一个基于 Cairo 库的可视化库,可以用于生成矢量图形,包括折线图、散点图、圆形和椭圆等。
阅读  Python 列表推导式的详细用法

使用这些库时,你需要先安装它们,可以使用 pip 命令进行安装,例如:





pip install pyqtgraph
pip install vispy
pip install holoviews
pip install gizeh

然后,你就可以在 Python 代码中导入并使用这些库了。例如,使用 Vispy 绘制交互式散点图的代码如下:





import numpy as np
from vispy import app, gloo, visuals

# 定义数据
N = 10000
pos = np.random.uniform(-1, 1, (N, 3)).astype(np.float32)
color = np.random.uniform(0, 1, (N, 4)).astype(np.float32)

# 定义着色器
vertex = """
attribute vec3 position;
attribute vec4 color;
varying vec4 v_color;
void main (void) {
    gl_Position = vec4(position, 1.0);
    v_color = color;
}
"""

fragment = """
varying vec4 v_color;
void main()
{
    gl_FragColor = v_color;
}
"""

# 定义可视化对象
class Canvas(visuals.Visual):
    def __init__(self, pos, color):
        visuals.Visual.__init__(self, vertex, fragment)

        # 将数据传递给着色器
        self.shared_program['position'] = pos
        self.shared_program['color'] = color

        # 启用深度缓存
        gloo.set_state(depth_test=True)

# 创建窗口
canvas = app.Canvas(keys='interactive')

# 创建可视化对象
visual = Canvas(pos, color)

# 绘制函数
@canvas.connect
def on_draw(event):
    gloo.clear(color='black', depth=True)
    visual.draw()

# 显示窗口
canvas.show()
app.run()

这段代码会创建一个交互式窗口,在窗口中绘制一个随机的散点图。你可以通过鼠标拖拽、缩放和旋转来观察散点图。

阅读  Python 循环语句详细用法

有了这些库,你就可以使用 Python 进行各种可视化操作了。