Python中绘制水平线

2025 年 1 月 5 日 | 阅读 9 分钟

Python 提供了一个灵活的平台,用于制作具有视觉吸引力且具有教育意义的图表。绘制水平线是 Matplotlib、Seaborn 和 Plotly 等库中包含的众多功能之一,它对于在图表中传达关键点或信息至关重要。本文将探讨几种绘制水平线的 Python 技术。

使用 Matplotlib 库

Matplotlib 是 Python 生态系统中广泛使用的绘图库,以其简单性和灵活性而闻名。要绘制水平线,您可以使用 `axhline` 函数。

axhline() 函数

`axhline` 函数是 Matplotlib 中用于跨坐标轴绘制水平线的函数。它是 Matplotlib 中 Axes 类的成员,通常在 Axes 对象上调用以将水平线添加到特定子图中。

语法

以下是对 `axhline` 语法的说明:

  • y: 将绘制水平线的 y 坐标。
  • Colour (可选): 线的颜色。可以采用各种格式指定(例如,'red'、'#FF0000'、(1, 0, 0) 或 'C0')。如果未指定,将使用默认颜色。
  • linestyle (可选): 线的样式。可以是 '-', '--', '-.', ':', 或 'None'(默认为实线 '-')。
  • Linewidth (可选): 线的宽度。
  • Label (可选): 用于图例的线的标签。

示例 1

让我们看一个基本示例

程序

输出

Plotting Horizontal Lines in Python

说明

在此示例程序中,`axhline` 在 y=7 处绘制了一条水平线。

示例 2

程序

输出

Plotting Horizontal Lines in Python

说明

在此示例中,我们使用 pandas 库创建了一个 DataFrame,然后使用 matplotlib 库绘制了一条水平线。

示例 3

在 Matplotlib 中,您可以为水平线使用各种线型和颜色。下面展示了如何使用不同的线型和颜色创建水平线的示例。

程序

输出

Plotting Horizontal Lines in Python

说明

  • 第一个 `axhline` 在 y=2 处绘制一条红色实线水平线。
  • 第二个 `axhline` 在 y=4 处绘制一条绿色虚线水平线。
  • 第三个 `axhline` 在 y=6 处绘制一条蓝色点划线水平线。
  • 第四个 `axhline` 在 y=8 处绘制一条紫色点线水平线。

示例 4

要使用 Matplotlib 在条形图上添加水平线,您可以使用 `axhline` 函数。我们可以使用水平线来表示最高、最低或平均数据值。

程序

输出

Plotting Horizontal Lines in Python

说明

`plt.bar(categories, values, color='green')` 使用提供的类别和值创建简单的条形图。

`plt.axhline(y=12, color='red', linestyle='--', label='Horizontal Line at y=12')` 在 y=12 处添加一条红色虚线水平线。标签是可选的,可用于图例。

使用 hlines 函数

在绘图上绘制水平线的另一种方法是使用 Matplotlib 的 `hlines()` 函数。当您希望一次创建多条水平线时,这尤其有用。下面解释了 `hlines()` 函数的语法。

语法

  • y: 水平线(或多条线)的 y 坐标。
  • xmin: 线(或多条线)的起始 x 坐标。
  • xmax: 线(或多条线)的结束 x 坐标。
  • colours (可选): 线(或多条线)的颜色。它可以是单个颜色或颜色序列。默认为 'k'(黑色)。
  • linestyles (可选): 线(或多条线)的线型。可以是 'solid'、'dashed'、'dashdot'、'dotted' 或自定义线型。默认为 'solid'。
  • label (可选): 用于图例的线(或多条线)的标签。
  • data (可选): 如果指定,数据将用作函数中的变量。否则,变量将从调用环境中获取。
  • **kwargs (可选): 传递给 `matplotlib.collections.LineCollection` 构造函数的其他关键字参数。

示例 1

使用 hlines 函数的示例程序。

程序

输出

Plotting Horizontal Lines in Python

说明

此程序使用 `ahline` 函数有效地在 y=2、y=4 和 y=6 处绘制了三条水平线,从 x=0 开始到 x=5 结束,具有虚线和蓝色。标签设置为“Horizontal Lines”,供图例参考。

示例 2

让我们来看另一个程序,展示如何使用 `hlines` 函数绘制多条线。

程序

输出

Plotting Horizontal Lines in Python

说明

此示例程序创建一个子图,并绘制具有不同线型和颜色的多条水平线。

`fig, pq = plt.subplots()`: 创建一个新的图形和一个子图集。`pq` 被指定为子图的坐标轴。`fig, pq` 的用法是创建图形及其相应坐标轴的常用约定。

`pq.hlines(y=[2, 4, 6, 8], xmin=0, xmax=5, colors=['r', 'g', 'b', 'purple'], linestyles=['-', '--', '-.', ':'], label=['Solid Line', 'Dashed Line', 'Dash-dot Line', 'Dotted Line'])`: 在子图 `pq` 上绘制水平线。这些线将在 y 坐标 2、4、6 和 8 处绘制,从 x=0 开始到 x=5 结束。每条线将具有不同的颜色和线型。为每条线提供了标签,可用于图例。

使用 plot()

`plot()` 函数是 Matplotlib 中一个通用且广泛使用的函数,用于创建各种图表,包括折线图、散点图、条形图等。

语法

  • x, y:要显示的绘图数据。x 坐标数组称为 x,y 坐标数组称为 y。
  • label:一个可选的故事标签,用于图例。
  • Colour:指示标记或线的颜色。
  • linestyle:指示线的样式。'-'、'--'、'-.' 和 ':' 是常见值。
  • Marker:指示标记的样式。'o'、's'、'^' 和 'D' 是常见值。
  • Markersize:指示标记的大小。

示例 1

使用 plot 函数,让我们看一个关于水平线的简单程序。

程序

输出

Plotting Horizontal Lines in Python

说明

上述代码将生成一个在 y=0 处具有水平线的图,使用指定的 x 值,借助 `plot()` 函数。

示例 2

让我们看一个在折线图上绘制线的示例程序。

程序

输出

Plotting Horizontal Lines in Python

说明

我们导入了所需的库,然后使用 `plot()` 函数来表示水果的折线图。

我们使用相同的 `plot` 函数在折线图上绘制了一条水平线。最后,我们添加了所有标签。

`plt.plot` 函数创建了一个带有标记(`marker='o'`)的折线图。`linestyle='-'` 参数指定线应为实线。`color='yellow'` 参数将线的颜色设置为黄色,`label='Line Plot'` 为折线图提供了标签。

此行再次使用 `plt.plot` 函数在 y=12 处添加了一条水平线。`linestyle='--'` 参数指定虚线,`color='purple'` 将颜色设置为紫色,`label='Horizontal Line at y=12'` 为水平线提供了标签。

水平网格线

plt.gca(): `plt.gca()` 是 Matplotlib 用于“获取当前坐标轴”的方法。当前图形返回 Axes 的当前实例。如果尚不存在坐标轴,则会生成并返回一个新的坐标轴。

axes.yaxis.grid(): 要控制 y 轴上的网格线,请在使用 `plt.gca()` 检索当前坐标轴后,使用 `yaxis.grid()` 方法。

程序

输出

Plotting Horizontal Lines in Python

说明

我们创建了一个图,其中添加了水平网格线到 y 轴。该图使用 `axes.yaxis.grid(True)` 方法生成了水平网格线。

Plotly

Plotly 是一个流行的 Python 包,用于制作动态、美观的图表。`plotly` 库的 `graph_objects` 模块提供了一个全面且可适应的 API,用于制作各种图表。

使用 graph_objects

Plotly 的 `graph_objects` 模块提供了一个低级接口,用于创建和修改图表和图形。它让您可以精确控制图表的外观和行为。

Figure

  • `Figure` 类是 `graph_objects` 模块的核心元素。它代表整个图形或绘图。
  • 您可以使用 `go.Figure()` 创建一个空图形,或使用 `go.Figure(data=[trace1, trace2, ...])` 创建一个带有初始轨迹(数据系列)的图形。

形状

  • `add_shape` 方法向图形添加几何形状,例如线条、矩形或圆形。

示例 1

让我们看一个简单的程序。

程序

输出

Plotting Horizontal Lines in Python

说明

我们导入了所需的库,即 `plotly.graph_objects`。

然后,我们初始化 `go.Figure()` 构造函数来创建一个空画布,用于添加轨迹和形状以及自定义布局。

`add_shape` 方法向图形添加一条水平线。提供的参数是:

  • type='line': 指定形状是线条。
  • y0=2, y1=2: 将水平线的起始和结束 y 坐标设置为 y=2。
  • line=dict(color='red', width=2): 配置线的颜色为红色,宽度为 2。

示例 2

此示例程序说明了如何在画布上绘制多条线。

程序

输出

Plotting Horizontal Lines in Python

说明

此程序与上述程序类似,但略有不同。我们使用了列表和 for 循环来迭代 `add_shape` 函数以绘制多条线。

结论

总而言之,Python 中的水平线是图形的重要组成部分,可用于分隔绘图区域或改进数据的可视化方式。无论是与 Matplotlib、Plotly 还是其他数据可视化框架一起使用,水平线都能为图形结果提供更多上下文和清晰度。开发人员可以通过轻松创建 `axhline()` 或 `hline()` 等函数来定制水平线的出现和位置,以满足个人需求。通过利用这些功能,Python 程序员可以创建具有视觉吸引力且信息丰富的图表,从而提高各种应用中数据分析和演示的整体效率,从商业分析到科学研究。尽管其应用广泛,水平线仍然是 Python 编程工具箱中的一个重要元素。